CodeQL 文档

错误的 NaN 比较

ID: java/comparison-with-nan
Kind: problem
Security severity: 
Severity: error
Precision: very-high
Tags:
   - correctness
Query suites:
   - java-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

特殊的浮点数 NaN 被定义为与所有其他浮点数(包括自身)不同,当使用相等运算符 ==!= 进行比较时。

建议

要检查变量 x 是否为 NaN,请使用 java.lang.Floatjava.lang.Double 上定义的 isNaN 方法。

示例

表达式 x == Double.NaN 始终为假。此表达式应替换为 Double.isNaN(x),它可以准确地识别 x 是否等于 Double.NaN

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私