Если я это сделаю
double d = 0;
if (d == 0) {
...
}
Resharper жалуется при сравнении d == 0
о «Сравнении числа с плавающей запятой с оператором равенства. Возможна потеря точности при округлении значений».
Почему? Не может быть сложно представить точный нуль как двойное число или число с плавающей запятой, не так ли?
Я понимаю, что такое предупреждение было бы уместным, если бы я сравнивал с каким-то другим значением, например как 0,2, для которых нет точного двоичного представления.