24

我正在阅读BigDecimal 类,但我无法找到BigDecimal类如何在计算机内存中存储值的任何信息。

您知道任何可以提供此信息的可靠来源吗?

4

2 回答 2

23

BigDecimal的未缩放值存储在BigInteger中。精度和比例分别存储在整数字段中:

BigInteger intVal
int scale
int precision

BigInteger将整数存储为32 位整数的大端数组,并将符号单独存储为另一个 32 位整数。

int signum
int[] mag

但正如 Muhd 所说,如果该数字可以放入 64 位整数,则使用它而不是 BigInteger。

于 2014-05-19T04:11:00.707 回答
9

如果数字的数量足以适合长整数,则数字的有效数字存储在长整数中,否则将它们存储在 BigInteger 中。此外,BigDecimal 有 int 原语来表示比例和精度,比例表示小数点右侧的有效位数,精度表示数字中有效位数的总数。

于 2014-04-01T21:56:36.160 回答