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);
敷居が高いイメージがあったけど、意外と楽でした。
それに対し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);
敷居が高いイメージがあったけど、意外と楽でした。