• ベストアンサー

doubleについて

doubleが何桁の値をとるのか知りたいのですが、参考書などを見ると15桁のように記述されているのですが実際の値は16、17、18桁の値が出力されます。実際には何桁なのでしょうか?また、小数第何位までを取得する。のような設定はできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kiyohu16
  • ベストアンサー率38% (8/21)
回答No.2

sha-girlさんの回答と重複すると思いますが回答させていただきます。 doubleの精度は有効桁数15~16桁程度のようです。 少数第何位まで指定するというのとは違うかもしれませんが、表示する書式を指定する方法はあります。それには、DecimalFormatを用います。 以下に試しに書いたプログラムと実行例を載せておきます。 (プログラム) import java.text.*; //↑これは忘れずに class Test{ public static void main(String[] args){ //この場合小数点以下3桁を表示させる書式に指定 DecimalFormat df = new DecimalFormat("0.000"); double k=1.234567890; //ここで表示させる桁のみになる String df_k = df.format(k); //そのまま System.out.println("k="+k); //書式指定 System.out.println("k≒"+df_k); } } //実行結果 k=1.23456789 k≒1.235

その他の回答 (2)

  • yuji
  • ベストアンサー率37% (64/169)
回答No.3

小数第何位まで取得といった場合には BigDecimalクラスを使った方がいいかもしれません。 具体的な要求がわからないので、自信なしとしておきます。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

doubleは小数点以下何桁という情報がはいっているわけではなく 「浮動小数点」というものです。 有効数値15桁以下の数値は誤差がでます。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=616921 などが参考になるでしょう。

関連するQ&A