Я наткнулся на этот код, который издает предупреждение с gcc
:
float f;
// Calculate a value for f
if (!f == 0.0)
{
// Handle it being non-zero
}
Вероятно, это была просто опечатка другого члена команды, и проверка кода на самом деле означала:
if (f != 0.0)
// OR
if (!(f == 0.0))
Я исправил код, но мне было просто интересно, что оценит !NaN
.Мы используем значение f
внутри if
, поэтому мы не хотим, чтобы NaN
s проходил проверку.