unnecessary_nan_comparison
A double can't equal 'double.nan', so the condition is always 'false'.
A double can't equal 'double.nan', so the condition is always 'true'.
Description
#The analyzer produces this diagnostic when a value is compared to
double.nan
using either ==
or !=
.
Dart follows the IEEE 754 floating-point standard for the semantics of
floating point operations, which states that, for any floating point value
x
(including NaN, positive infinity, and negative infinity),
NaN == x
is always falseNaN != x
is always true
As a result, comparing any value to NaN is pointless because the result is already known (based on the comparison operator being used).
Example
#The following code produces this diagnostic because d
is being compared
to double.nan
:
bool isNaN(double d) => d == double.nan;
Common fixes
#Use the getter double.isNaN
instead:
bool isNaN(double d) => d.isNaN;
除非另有说明,文档之所提及适用于 Dart 3.7.3 版本,本页面最后更新时间: 2025-05-08。 查看文档源码 或者 报告页面问题。