<分区>
Possible Duplicate:
C# Maths gives wrong results!
我的 C# Windows 应用程序项目中有以下代码:
双重测试 = 2.24 * 100;
如果我添加一 block watch 进行测试,人们会期望该值为 224,但实际上是: 224.00000000000003
谁能解释额外的 .00000000000003 是从哪里来的?
<分区>
Possible Duplicate:
C# Maths gives wrong results!
我的 C# Windows 应用程序项目中有以下代码:
双重测试 = 2.24 * 100;
如果我添加一 block watch 进行测试,人们会期望该值为 224,但实际上是: 224.00000000000003
谁能解释额外的 .00000000000003 是从哪里来的?
最佳答案
Multiplying a decimal by 100 in C# leads to unexpected answer
首先,您没有乘以小数 - 您已经将 IEEE 754 float 乘以 100。
因为 2.24 不作为 double
存在。但是,如果您这样做:
decimal test = 2.24M * 100;
它会按照您的预期运行。
关于c# - 在 C# 中将 double 乘以 100 会导致意想不到的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7568245/