Goでfloat32の数値をfloat64の精度に変換している間に失われています。たとえば、359.9からfloat64に変換すると、359.8999938964844が生成されます。 float32が正確に格納できる場合、なぜfloat64の精度が低下するのですか?float32をfloat64に変換する際に精度が低下するのはなぜですか?
サンプルコード:double
(のfloat64)にfloat
(すなわちのfloat32)から変換するとき
package main
import (
"fmt"
)
func main() {
var a float32 = 359.9
fmt.Println(a)
fmt.Println(float64(a))
}
はあなた決して失う精度Playground
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – Mysticial