yuralog

ひびのめもだよ!

浮動小数点の比較(Go)

f := 0.1
f += 0.2
fmt.Println("f: ", f) // 0.30000000000000004
 
fmt.Println(f == 0.3) // false

丸め誤差の対策として、2つの浮動小数点は直接比較するのではなく、2つの数の差の絶対値を求めて十分に小さいことを確認する

fmt.Println(math.Abs(f - 0.3) < 0.0001) // true

Playground

https://play.golang.org/p/yMvcnY-dRGz