- ベストアンサー
doubleについて
doubleが何桁の値をとるのか知りたいのですが、参考書などを見ると15桁のように記述されているのですが実際の値は16、17、18桁の値が出力されます。実際には何桁なのでしょうか?また、小数第何位までを取得する。のような設定はできるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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)
小数第何位まで取得といった場合には BigDecimalクラスを使った方がいいかもしれません。 具体的な要求がわからないので、自信なしとしておきます。
- sha-girl
- ベストアンサー率52% (430/816)
doubleは小数点以下何桁という情報がはいっているわけではなく 「浮動小数点」というものです。 有効数値15桁以下の数値は誤差がでます。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=616921 などが参考になるでしょう。