【发布时间】:2014-05-29 12:27:15
【问题描述】:
谁能解释一下为什么计算值 180 * 2.2 在存储为小数和双精度时会有所不同;或许还可以解释为什么 .NET 首先计算 180 * 2.2 时带小数点?
- 标准计算器:396
- 表达式(双):396.00000000000006
- 转换为十进制的表达式:396
【问题讨论】:
标签: .net vb.net math double decimal
谁能解释一下为什么计算值 180 * 2.2 在存储为小数和双精度时会有所不同;或许还可以解释为什么 .NET 首先计算 180 * 2.2 时带小数点?
【问题讨论】:
标签: .net vb.net math double decimal
双精度并不是一个精确的表示:有很多舍入和截断(但你确实得到了更大的范围)。
阅读:What Every Computer Scientist Should Know About Floating-Point Arithmetic.
【讨论】: