计算结果因十进制或双精度而异

时间:2014-05-29 12:27:16

标签: .net vb.net math double decimal

有人可以解释为什么计算值180 * 2.2存储在十进制与双倍时会有所不同;也许还解释了为什么.NET首先用小数点计算180 * 2.2?

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

Visual Studio Watch

1 个答案:

答案 0 :(得分:1)

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

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