【问题标题】:Calculation result is different depending on decimal or double [duplicate]计算结果因十进制或双精度而异[重复]
【发布时间】:2014-05-29 12:27:15
【问题描述】:

谁能解释一下为什么计算值 180 * 2.2 在存储为小数和双精度时会有所不同;或许还可以解释为什么 .NET 首先计算 180 * 2.2 时带小数点?

  • 标准计算器:396
  • 表达式(双):396.00000000000006
  • 转换为十进制的表达式:396

【问题讨论】:

    标签: .net vb.net math double decimal


    【解决方案1】:

    双精度并不是一个精确的表示:有很多舍入和截断(但你确实得到了更大的范围)。

    阅读:What Every Computer Scientist Should Know About Floating-Point Arithmetic.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2019-05-19
      相关资源
      最近更新 更多