Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
java中双值乘法运算符的保证精度是多少?
例如,2.2 * 100 是 220.00000000000003,但 220 是双精度数。220.000000000000003 是 220 之后的下一个双倍。
乘法工作正常,但2.2不能完全表示为双精度数。最接近的双打是:
2.2
某些软件会将后一个值打印为2.2,但这并不意味着它是准确的。这只是意味着它被视为“足够接近”。
如果您正在使用财务数据,请不要float or double只使用java.math.BigDecimal
float or double
java.math.BigDecimal
您可以使用 BigDecimal,但请确保使用BigDecimal(String)而不是BigDecimal(double)的构造。它们之间的区别是: