- ベストアンサー
小数点以下の表示が正しく表示されなくて困ってます
public class test{ public static void main(String args[]){ double a = .05; System.out.println(a*3.0); } } というプログラムなんですけども。 アウトプットを表示すると >java test 0.15000000000000002 っというふうに表示されてしまいます。 プログラム自体を変えずに、0.15という表示を出したいのですが、どうしてもでません。誰か、教えていただければありがたいと思っています。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
まず、doubleでは「0.05 * 3.0」の結果は0.15にはならない、ということは理解できていますか? それを踏まえた上で、一般的な考え方として・・。 決まったフォーマットの形で数値を出力したい場合は、java.textのフォーマット関連のクラスを利用するのが一般的です。実数であればDecimalFormatを使うのが良いでしょう。 import java.text.*; public class Sample { public static void main(String[] args){ // "#,##0.00"というフォーマットでDecimalFormatを作成 DecimalFormat df = new DecimalFormat("#,##0.00"); double a = .05; // DecimalFormatのformatでフォーマット済みテキストを得る System.out.println(df.format(a*3.0)); } } こんな感じです。 java.text.DecimalFormatを調べてみるとよいでしょう。
その他の回答 (1)
- pcbeginner
- ベストアンサー率46% (261/560)
最近あった似たような質問。