ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

JavaでC言語みたいに少数何桁表示とかさせたい

2010年03月19日 08時00分23秒 | ソフト開発日記
C言語の書式では、 %lf.5 のように書けば、少数以下第5桁まで表示される。
それに対しJavaはそういった書き方ができなくてちょっと痒い・・。

調べてみたらtextパッケージのDecimalFormatクラスを使えばできるみたい。
試しに実際に書いてみた例↓

double a = 1.0 / 3.0;
DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format(a));

あるいは、次のように。

String s = new DecimalFormat("#.##").format(a);
System.out.println(s);

確かに結果は 0.33 と少数以下第2位まで表示される。
だけど、double a = 1.0; で a を同様に表示させようとすると、結果は 1 。
そうではなくて、a = 1.0 のときは結果を 1.00と表示させたいのに。
って思いながらDecimalFormatについて調べたらすぐ解決しました。

DecimalFormatのコンストラクタの文字列のパターンについて

# は数字を表し、数字が0のとき表示しない。
0 は数字を表し、数字が0でも表示する。

とのこと。すなわち、こうすれなばよかった。

String s = new DecimalFormat("0.00").format(a);
System.out.println(s);

敷居が高いイメージがあったけど、意外と楽でした。