简单的十进制值和计算问题

时间:2010-12-07 17:02:15

标签: c#-3.0 sum

我有一个项目,我可以获得某些实体的某些值,并汇总成另一个实体的属性。

现在如果根据Windows 7计算器并基于简单的数学说总和(5,00 + 100,01 + 16.236 + 252,03)= 373,27。

但是当C#代码发生这种情况时

entity.SumValue + = someEntity1.Value .... entity.SumValue + = someEntity2.Value ....

SumValue = 373,26

我(但并非在所有情况下)损失一分钱(欧元):P

有任何想法得到我需要的东西吗?

2 个答案:

答案 0 :(得分:1)

如果您使用decimal,则C#实际上不可能出现计算错误。 (我的意思是,精度总是有限制的,但是在逗号之后有3位数的小数字时却没有...)

其他地方一定有问题。例如,如何创建小数?他们是否曾被转为双打并回来,例如从数据库中读取时?

答案 1 :(得分:0)

使用以下代码,总和等于373.276

decimal sum = 0m;
sum += 5.00m;
sum += 100.01m;
sum += 16.236m;
sum += 252.03m;

那么与你有什么不同?