小数点后双精度

Mar*_*tus 6 c# double ieee-754

午休时我们开始讨论double价值类型的精确度.

我的同事认为,小数点后总是有15位.

在我看来,人们无法分辨,因为IEEE 754没有对此做出假设,它取决于第一个1在二进制表示中的位置.(即小数点前的数字大小也计算在内)

怎么能做出更合格的陈述?

jor*_*ebg 5

如C# 参考所述,精度为小数点之前或之后 15 到 16 位(取决于所表示的十进制值)。

总之,你是对的,这取决于小数点前后的值

例如:

  • 12345678.1234567D//右边的下一个数字将被四舍五入
  • 1234567.12345678D//右边的下一个数字将被四舍五入

完整示例位于: http: //ideone.com/eXvz3

此外,尝试将double值视为固定的十进制值也不是一个好主意。

  • 需要指出的是,这意味着总共 15 位数字,而不仅仅是小数点后的 15 位数字。 (4认同)