下面的符合预期:
a := (float64(0) - 32) * 5 / 9
b := (0.0 - 32) * 5 / 9
fmt.Println(a == b, a, b)
// Output: true -17.77777777777778 -17.77777777777778
但它们分别加上 273.15,结果竟然不同了:
c := (float64(0) - 32)*5/9 + 273.15
d := (0.0 - 32)*5/9 + 273.15
fmt.Println(c == d, c, d)
// Output: false 255.3722222222222 255.37222222222223
这是为什么?
---
https://play.golang.org/p/0v1PjVwNOnI
有疑问加站长微信联系(非本文作者)