Я знаю, что мы не можем сравнить 2 значения с плавающей запятой, используя ==. Мы можем сравнить только они в некотором интервале друг друга.
Я знаю < /p>
if(val == 0.512)
< /code>
неправильно из -за ошибок, присущих расчетам с плавающей запятой, и преобразования в бинарное и
должно быть < /p>
if (val in (0.512-epsilon, 0.512+epsilon))
< /code>
Но 0 специально? Можем ли мы сравнить поплавки с 0 с 0? Или даже это неверно? Особенно в контексте C# и Java? < /P>
double val = 0;
val = getVal();
if(val == 0)
Подробнее здесь: https://stackoverflow.com/questions/237 ... ly-to-zero
Можете ли вы сравнить значения с плавающей точкой точно с нулем? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение