在午休时间,我们开始讨论double值类型的精度。

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

我认为不能说,因为IEEE 754没有做出假设
关于这一点,这取决于第一个1在二进制文件中的位置
表示。 (即,小数点前的数字大小也要计算在内)

一个人如何做出更合格的陈述?

最佳答案

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

简而言之,您是对的,它取决于小数点之前和之后的值。

例如:

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

  • 完整样本在:http://ideone.com/eXvz3

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

    关于c# - 小数点后 double ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12089817/

    10-11 18:10