如何在golang中检查NaN

时间:2015-07-06 12:43:32

标签: go nan

如何检查浮点变量是否为NaN? e.g。

math.Log(1.0) // not NaN
math.Log(-1.0)  // NaN

3 个答案:

答案 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)
}

编辑为一个独立的答案。