如何检查浮点变量是否为NaN? e.g。
math.Log(1.0) // not NaN
math.Log(-1.0) // NaN
答案 0 :(得分:25)
使用math.IsNaN(...)
:playground
答案 1 :(得分:10)
使用math.IsNaN
:
IsNaN报告f是否是IEEE 754“非数字”值。
答案 2 :(得分:3)
正如 Nico 的评论中提到的,因为 NaN 被定义为 f != f
,这就是 math.IsNaN
所做的一切。
See the src here。
所以,你可以检查一下:
if f != f {
fmt.Printf("%v is NaN", f)
}
编辑为一个独立的答案。