Golang 浮点运算

Golang float arithmetic

Go 中的浮点运算是如何工作的

游乐场link

package main

import "fmt"

func main() {
    j := 1.021
    fmt.Println(j)
    k := j*1000
    fmt.Println(k)
    l := int(k)
    fmt.Println(l)
}

Output:
1.021
1020.9999999999999
1020

我期待 1021 被打印出来,但我得到了 1020

Go 和其他人一样,使用 IEEE-754 二进制浮点运算。浮点运算对于某些十进​​制值是不精确的。

参考文献:

Floating point

IEEE floating point