1

根据Javadoc,负比例意味着:

数字的未缩放值乘以十的负数次方。因此 BigDecimal 表示的数字的值是 (unscaledValue × 10-scale)

但假设我有以下内容:

BigDecimal b1 = new BigDecimal("754.000");

因为小数点右边有三位小数,所以它的比例为 3。然后我改变比例如下:

BigDecimal b2 = b1.scaleByPowerOfTen(4);

现在,比例为负:3-4 = -1,b2未缩放的值为 7540000。应用 Javadoc,负比例定义:

  • 数字的未缩放值乘以 10 的负数次方 = 7540000 X 10^-(-1) = 75400000。

但这是错误的,因为该值实际上是 7540000。我的理解有什么问题?如果我将值打印到控制台:

System.out.println(b2);

我得到 7.54000E+6。为什么它以科学计数法打印数字?它在这里使用什么规则进行打印?如果为负数,数值是否总是以科学计数法打印?

更新(根据要求显示为什么另一个帖子没有回答我的问题)

这篇文章的答案告诉我负比例的使用。具体来说,它表明它在四舍五入和科学测量方面的有用性。它没有解释负比例是什么意思,我将 Javadoc 应用于我的示例的方式有什么问题,以及为什么它以科学记数法打印。

4

0 回答 0