Как правильно сравнивать десятичные значения в C #?

Я пришел из опыта работы с C ++, и я знаю, что вы не можете точно сравнить числа с плавающей запятой на равенство. Для C #, Я просто предположил, что та же политика применяется к десятичным значениям или любому значению с плавающей запятой в целом.

Обычно у меня есть два десятичных значения, и если они НЕ равны друг другу, мне нужно выполнить какое-то действие. например:

decimal value1, value2;
// Assume value1 and value2 are set somewhere to valid values.
if( value1 != value2 )
{
    // Do something
}

Если это не сработает, как ожидалось, я готов принять решение, которое выполняет сравнение на равенство с допустимой погрешностью, например, 0,00001 или что-то в этом роде. Каким будет рекомендованное решение этой проблемы?

47
задан void.pointer 9 May 2011 в 06:13
поделиться