【问题标题】:How to check for NaN in golang如何在 golang 中检查 NaN
【发布时间】:2015-09-23 14:53:07
【问题描述】:

如何检查浮点变量是否为 NaN?例如

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

【问题讨论】:

    标签: go nan


    【解决方案1】:

    为此使用math.IsNaN(...):playground

    【讨论】:

    【解决方案2】:

    使用math.IsNaN:

    IsNaN 报告 f 是否为 IEEE 754 “非数字”值。

    【讨论】:

      【解决方案3】:

      正如 Nico 的评论中提到的,因为 NaN 被定义为 f != f,这就是 math.IsNaN 所做的一切。 See the src here.

      所以,你可以检查一下:

      if f != f {
          fmt.Printf("%v is NaN", f)
      }
      

      编辑成一个独立的答案。

      【讨论】:

        猜你喜欢
        • 2022-01-13
        • 2010-10-30
        • 1970-01-01
        • 2013-04-14
        相关资源
        最近更新 更多