我有一个项目,我可以获得某些实体的某些值,并汇总成另一个实体的属性。
现在如果根据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
有任何想法得到我需要的东西吗?
答案 0 :(得分:1)
如果您使用decimal
,则C#实际上不可能出现计算错误。 (我的意思是,精度总是有限制的,但是在逗号之后有3位数的小数字时却没有...)
其他地方一定有问题。例如,如何创建小数?他们是否曾被转为双打并回来,例如从数据库中读取时?
答案 1 :(得分:0)
使用以下代码,总和等于373.276
decimal sum = 0m;
sum += 5.00m;
sum += 100.01m;
sum += 16.236m;
sum += 252.03m;
那么与你有什么不同?