• ベストアンサー

小数点以下の表示が正しく表示されなくて困ってます

public class test{ public static void main(String args[]){ double a = .05; System.out.println(a*3.0); } } というプログラムなんですけども。 アウトプットを表示すると >java test 0.15000000000000002 っというふうに表示されてしまいます。 プログラム自体を変えずに、0.15という表示を出したいのですが、どうしてもでません。誰か、教えていただければありがたいと思っています。よろしくお願いします。

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

  • ベストアンサー
noname#49664
noname#49664
回答No.1

まず、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)

回答No.2

最近あった似たような質問。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1301591

関連するQ&A