为什么 BigDecimal 的小数位数不是 BigInteger?

Why is BigDecimal's scale not a BigInteger?

为什么 BigDecimalscale 字段不是 BigInteger?我认为目前这可能没有意义,因为可能永远不会执行具有那么多小数位的计算,但是将来使用 BigInteger?

是否有意义?

BigDecimal 的小数位数是它存储在小数点右边的位数。它是 内存量 因为这些数字实际上被存储了,它是 工作量 因为对 BigDecimal 的大多数操作都会有对所有这些数字进行处理。

使用 BigDecimal 永远不会是一个好主意,它占用的内存量或工作量不适合 int,因此 int 用于缩放。这与 int 用于字符串长度和集合大小等的原因相同。

在极少数情况下,合理数量的内存或工作不适合 int,它肯定适合 long。例如,长整型用于文件大小和位置。永远不需要 BigInteger。