用小数部分去计算值

时间:2019-05-02 02:21:17

标签: go

我目前正在使用一个小程序来为输入的一些数字计算公式,事实是我需要一些十进制值的答案,但是我一直无法找到一种将答案打印为双精度的方法或其他类似类型的变量以及Internet上的信息,它可能会产生错误或仅显示答案的整数部分。

func main() {

var m = 0
a := make([]int, 5)


   for i := 0; i < 5; i++ {
      fmt.Scan(&a[i])
    }

  m = a[0]*60 + a[2] + (a[4]/60)
  fmt.Println(m)

    }

在此先感谢您的提示或帮助。

4 个答案:

答案 0 :(得分:1)

如果要使用带数字的小数位数,则需要使用ArrayList而不是float64。请注意将它们与货币一起使用。

答案 1 :(得分:1)

整数除法会将结果截断为零。使用浮点结果。例如,在准确性损失最小的情况下,

package main

import "fmt"

func main() {
    var m float64
    a := make([]int64, 5)
    for i := 0; i < 5; i++ {
        _, err := fmt.Scan(&a[i])
        if err != nil {
            fmt.Println(err)
            i--
        }
    }
    fmt.Println(a)
    m = float64((a[0]*60+a[2])*60+a[4]) / 60
    fmt.Println(m)
}

输出:

2 3 4 5 6
[2 3 4 5 6]
124.1

答案 2 :(得分:0)

使用fmt.Printf函数链接C-printf函数

import fmt
value := 2.2
fmt.Printf("%f", value)

答案 3 :(得分:0)

使用float64,并在计算之前将所有int转换为浮点数。

以下将为您提供十进制值。

m = float64(a[0])*60 + float64(a[2]) + (float64(a[4])/60)

但这会给出整数。

m = float64(a[0]*60 + a[2] + (a[4]/60))