BigDecimal的javadoc的第一段说:
不可变的,任意精度的带符号十进制数。 BigDecimal由任意精度整数组成 非标度值和32位整数标度。如果为零或正, 比例是小数点右边的位数 点。如果为负数,则该数字的未缩放值为 乘以十来衡量标度的否定。 BigDecimal表示的数字的值 因此(未缩放值×10级)
有人可以解释一下这意味着什么,特别是开始'如果否定',但最好是全部吗?我认为'scale'表示小数点后面的数字,但这是否意味着'unscaled'是其余部分?
答案 0 :(得分:2)
比例表示数的大小乘以10的幂。权力可能是积极的或消极的。当功率为负k时,相应的10的负功率是分子中1为1的分数,分母为10 k 。简而言之,正尺度k意味着乘以10 k次;负标度-k表示除以10k倍。
以下是一些例子:
magnitude scale value
--------- ----- -------------
1.2345678 -3 0.0012345678
1.2345678 -2 0.012345678
1.2345678 -1 0.12345678
1.2345678 0 1.2345678
1.2345678 1 12.345678
1.2345678 2 123.45678
1.2345678 3 1234.5678
注意:上面大小的点是暗示。 BigDecimal
将数字的大小存储为任意大的整数。