Безопасно ли проверять значения с плавающей запятой на равенство 0?

Если вам нужно провести много c#.net сравнений «на равенство», было dot-net бы неплохо написать небольшую c#.net вспомогательную функцию или precision метод расширения в .NET 3.5 c#.net для сравнения:

public static bool AlmostEquals(this double double1, double double2, double precision)
{
    return (Math.Abs(double1 - double2) <= precision);
}

Это можно использовать c#.net следующим образом:

double d1 = 10.0 * .1;
bool equals = d1.AlmostEquals(0.0, 0.0000001);

c#

.net

floating-point

precision

zero

2022-11-16T17:35:37+00:00
Вопросы с похожей тематикой, как у вопроса:

Безопасно ли проверять значения с плавающей запятой на равенство 0?