皆さんこんにちは、
Double d = 1.000000000000000000000000000000001;
System.out.println(d);
上記のコードは 1.0 を出力しますが、d に値全体を格納したいのです。望ましい出力は 1.0000000000000000000000000000001 でした
私の懸念は、この値を double に格納する方法ですか? double が格納できる小数点以下を増やす方法はありますか? 私を導いてください
BigDecimalを使用する必要があります。
例:
BigDecimal test = new BigDecimal("1.000000000000000000000000000000001");
System.out.println(test);
を使用して同じことを表現できない理由は、double
64double
ビットであるためです。
http://en.wikipedia.org/wiki/Double-precision_floating-point_format
上記のリンクのように、 double には合計 64 の 53 の 10 進ビットがあり、16 の小数点以下の桁数を格納できます