BigDecimal的定义是什么意思?

时间:2014-11-29 03:23:46

标签: java math

BigDecimal的javadoc的第一段说:

不可变的,任意精度的带符号十进制数。     BigDecimal由任意精度整数组成     非标度值和32位整数标度。如果为零或正,     比例是小数点右边的位数     点。如果为负数,则该数字的未缩放值为     乘以十来衡量标度的否定。     BigDecimal表示的数字的值     因此(未缩放值×10级)

有人可以解释一下这意味着什么,特别是开始'如果否定',但最好是全部吗?我认为'scale'表示小数点后面的数字,但这是否意味着'unscaled'是其余部分?

1 个答案:

答案 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将数字的大小存储为任意大的整数。

相关问题