【发布时间】:2019-11-23 16:17:08
【问题描述】:
令人惊讶的是,我找不到其他人遇到同样的问题;我尝试简单地在 Go 中初始化一个 float64 并打印它,然后尝试进行字符串转换并打印它。两个输出都不准确。
我尝试了很多分数,包括那些不能解析为重复小数的分数,以及简单地写出浮点数和打印(例如num := 1.5 然后fmt.Println(num) 给出输出1)。
package main
import (
"fmt"
"strconv"
)
func main() {
var num float64
num = 5/3
fmt.Printf("%v\n", num)
numString := strconv.FormatFloat(num, 'f', -1, 64)
fmt.Println(numString)
}
预期:
// Output:
1.66
1.66
实际:
// Output:
1
1
【问题讨论】:
-
downvoter 关心解释一下?
标签: go types floating-point strconv