java中双精度乘法的准确性?

kab*_*bar 7 java floating-point multiplication double-precision

对于java中的double值,乘法运算符的保证精度是多少?

例如,2.2*100是220.00000000000003,但220是双数.220.00000000000003是220后的下一个双倍.

dus*_*uff 7

乘法工作正常,但2.2不能完全表示为double.最接近的双打是:

  • 2.199999999999999733(0x4001999999999999)
  • 2.200000000000000177(0x400199999999999a)

有些软件会将后一个值打印为2.2,但这并不意味着它是准确的.这只是意味着它被视为"足够接近".