Можете ли вы сравнить значения с плавающей точкой точно с нулем?C#

Место общения программистов C#
Ответить
Anonymous
 Можете ли вы сравнить значения с плавающей точкой точно с нулем?

Сообщение Anonymous »

Я знаю, что мы не можем сравнить 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»