24

BigDecimal Classを読んでいましたが、クラスが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

数値の有効桁数は、桁数が long に収まるのに十分な場合は long に格納され、そうでない場合は BigInteger に格納されます。さらに、BigDecimal には、スケールと精度を表す int プリミティブ、小数点以下の有効桁数を示すスケール、数値の合計有効桁数を示す精度があります。

于 2014-04-01T21:56:36.160 に答える