c# - 在 C# 中将 double 乘以 100 会导致意想不到的答案

标签 c# math floating-point multiplication

<分区>

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/

相关文章:

c# - 在 Entity Framework 6.1.3 中调用 SaveChanges 时获取实体名称

c# - PowerShell 二进制模块程序集依赖性错误

java - 什么是欧氏距离平方或距离平方和?

python - 在 NumPy 中旋转晶体

c# - Azure Blob 存储 Sas 错误 : AuthenticationFailed

c# - 调用负载平衡的 Web 服务的偶发异常

algorithm - 计算一百万个质数

c++ - 交换 float 和 double 的 "endianness"

c++ - float 乘以零是否保证产生零?

php - acos(1) 在某些情况下返回 NAN