fmt.Println(0.1 + 0.2) // 0.3
fmt.Println(float64(0.1) + float64(0.2)) // 0.30000000000000004
这两种浮点计算的区别是什么?
fmt.Println(0.1 + 0.2) // 0.3
fmt.Println(float64(0.1) + float64(0.2)) // 0.30000000000000004
这两种浮点计算的区别是什么?
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.3k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
1 回答1.5k 阅读
精度不一样,一个是32位,一个是64位,浮点数在计算机里本来就是近似表达的,所以出现偏差是正常的,有可能是32位出误差,有可能64位出误差,取决于你用的那个数。 实际上,你这个例子和go无关,所有的语言都会得到得到类似的结果。