Сравнение NaN в Rust
Нечисло не равно даже самому себе. Результат
дробного выражения 0.0 / 0.0
не ведет себя как обычное число при сравнении.
Проверка == с таким значением дает
false, даже если сравнивают одну и ту
же переменную с собой. Это особое правило
запоминают отдельно от обычных чисел.
Запишем нечисло и сравним его с самим собой:
let x = 0.0 / 0.0;
println!("{}", x == x);
На экране будет false, хотя переменная
одна и та же:
let x = 0.0 / 0.0;
if x == x {
println!("equal");
} else {
println!("not equal");
}
Дана переменная:
let v = 0.0 / 0.0;
Выведите результат сравнения v с v.
Дана переменная:
let bad = 0.0 / 0.0;
Выведите "same" или "diff" по правилу
урока.
Скажите, чем сравнение обычного дробного числа с самим собой отличается от нечисла.