数字をきれいに出力するには

〜 java.text.DecimalFormat 〜


CやFortranでは、小数の表示桁数を指定できることはよく知られています。
Javaで何かを計算してそれを表示したりすることはあまりありませんが、
できます!(笑)
結構知らない人も多いのでは?

"0"は絶対に表示され、"#"は0だと表示されません。
'で囲むと、その中の文字はそのまま表示されます。
(けれど\は\\で\になるから(ややこい)'\\'としなきゃ\になりません。)
詳しく知りたい人はドキュメントを見てね。

*ソース
import java.text.DecimalFormat;

public class NumberTest{
  public static void main(String args[]){
    
    //フォーマットを定義
    //小数2桁まで
    DecimalFormat df1 = new DecimalFormat("0.00");
    //小数1桁のパーセント
    DecimalFormat df2 = new DecimalFormat("#.#%");
    //指数
    DecimalFormat df3 = new DecimalFormat("0.00E0");
    //\表示(カンマあり)
    DecimalFormat df4 = new DecimalFormat("'\\ '#,###");

    //ちっちゃい数
    double x = 1.0/6.0;
    System.out.println("1.0 / 6.0 =");
    System.out.println("        なし:"+x);
    System.out.println("      (0.00):"+df1.format(x));
    System.out.println("      (#.#%):"+df2.format(x));
    System.out.println("    (0.00E0):"+df3.format(x));
    System.out.println();

    //おっきい数
    int y = 1234*5678;
    System.out.println("1234 * 5678 =");
    System.out.println("        なし:"+y);
    System.out.println("('\\ '#,###):"+df4.format(y));
    System.out.println("    (0.00E0):"+df3.format(y));
  }
}

*実行結果
E:\Java\test>java NumberTest
1.0 / 6.0 =
       なし:0.16666666666666666
     (0.00):0.17
     (#.#%):16.7%
   (0.00E0):1.67E-1

1234 * 5678 =
       なし:7006652
('\ '#,###):\ 7,006,652
   (0.00E0):7.01E6


戻る