Почему Resharper жалуется, когда я сравниваю двойное значение с нулем?

Если я это сделаю

double d = 0;
if (d == 0) {
  ...
}

Resharper жалуется при сравнении d == 0о «Сравнении числа с плавающей запятой с оператором равенства. Возможна потеря точности при округлении значений».

Почему? Не может быть сложно представить точный нуль как двойное число или число с плавающей запятой, не так ли?

Я понимаю, что такое предупреждение было бы уместным, если бы я сравнивал с каким-то другим значением, например как 0,2, для которых нет точного двоичного представления.

19
задан Druid 16 February 2016 в 15:33
поделиться