golang 浮点数的比较 f == f + 1
var f float32 = 16777216 // 1 << 24
fmt.Println(f == f+1) // "true"!
var f2 float32 = 1 << 23
fmt.Println(f2 == f2+1) // "false"!
我看了float32最大表示的数为3.4028234663852886e+38,比1<<24是要大的,请问为啥会出现上面的结果true呢?
该说明Copy以下地址
16777216
的二进制为0-10010111-00000000000000000000000
16777217
的二进制为0-10010111-00000000000000000000000
所以两者相等浮点数为什么不能进行等号比较
有很多优秀文章