【发布时间】:2017-02-10 07:25:41
【问题描述】:
只要使用浮点数,0.1 就不能在内存中精确表示,所以我们知道这个值通常出来为 0.10000000000000004。
但是当使用 go 时添加 0.1 和 0.2。 我得到 0.3。
fmt.Println(0.1 + 0.2)
// Output : 0.3
为什么是 0.3 而不是 0.30000000000000004?
【问题讨论】:
-
确保 Go 不会对表达式进行常量折叠,因为 Go 在编译时使用额外的精度。
-
感谢新事物!