use*_*893 1 c# math floating-point multiplication
可能重复:
C#Maths给出了错误的结果!
我在C#windows应用程序项目中有以下代码:
双重测试= 2.24*100;
如果我添加一个手表进行测试,可以预期值为224,但实际上是:224.00000000000003
任何人都可以解释额外的.00000000000003来自哪里?
Mar*_*ell 15
在C#中将小数乘以100会导致意外的答案
首先,您没有乘以小数 - 您将IEEE 754浮点数乘以100.
因为2.24不存在double.但是,如果你这样做:
decimal test = 2.24M * 100;
Run Code Online (Sandbox Code Playgroud)
它会表现得像你期望的那样.