C# - 递增双精度值 (1.212E+25)

Jon*_*Jon 4 .net c# floating-point types

我有一个等于 1.212E+25 的双精度值

当我把它扔到文本中时,我会执行 myVar.ToString("0000000000000000000000")

问题是,即使我执行 myVar++ 3 或 4 次,该值似乎仍保持不变。

这是为什么?

Ste*_*eim 5

这是因为 double 的精度不够。它根本无法容纳那么多有效数字。

它不适合长整数,但可能适合小数。

但是...您真的需要这种精度吗?

  • @Dimitar:是的,*范围*最多允许 10^308...但精度仅为 15 位,25 位数字加 1 会产生什么影响? (4认同)