У меня есть метод C#, который принимает три параметра string
. После преобразования их в decimal
я пытаюсь выполнить простой математический расчет. Я не понимаю, почему результат не правильный?
decimal d = MyFunction(x, y, z);
public decimal MyFunction(string x, string y, string z)
{
decimal dx = 0;
decimal dy = 0;
decimal dz = 0;
Decimal.TryParse(x, out dx);
Decimal.TryParse(y, out dy);
Decimal.TryParse(z, out dz);
decimal result = dx - dz + dy;
return result;
}
Заранее спасибо.
decimal
. Я бы не назвал это переполнением, это просто следствие ограниченной точности. Ограниченная точность очень важна для такого типа данных. 25.09.2009Decimal
может содержать точное или неточное значение; к сожалению, нет никаких указаний на то, что он держит в любой момент. Добавление точных значений является ассоциативным в разумных пределах, но добавление неточных значений, как правило, не является ассоциативным, если только промежуточные результаты не остаются в диапазоне примерно +/- 8. 12.09.2013