使用BigDecimal的小数点后的最大位数

Kad*_*ddy 12 java bigdecimal

BigDecimalJava中值的小数点后我们可以拥有的最大位数是多少?

Mar*_*ers 13

它(几乎)是无限的.如果将scale设置为整数的最大值,则可以在小数点后存储大约20亿个数字,但如果尝试执行此操作,可能会耗尽内存.如果您需要存储这么多数字以确定限制是一个问题,那么您可能需要重新考虑程序的设计.

请参阅BigDecimal文档:

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