JAvaフォーマット数値DecimalFormat



数字を出力する場合、数字に単位を付ける必要がある場合もあれば、数字に一定の精度が必要な場合もあり、科学的なカウント法で数字を表す必要がある場合もある.
主な技術分析:
v JAva.text.DecimalFormatクラスは、数値のフォーマットに特化しています.
v DecimalFormatにフォーマットモードPatternを提供する必要があります.スキーマは、構築メソッドまたはDecimalFormatのapplyPatternメソッドで設定します.Patternのタイプは文字列です.
v DecimalFormatオブジェクトのpatternを使用してパラメータをフォーマットするフォーマットされる数値のformatインスタンスメソッドを呼び出します.
import java.text.DecimalFormat;

 

public class TestDecimalFormat {

public static void main(String[] args) {

DecimalFormat df = new DecimalFormat();

double data = 1203.405607809;

System.out.println("     :" + data);

 

String pattern = "0.0";//1203.4

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//                  ,    

pattern = "00000000.000kg";//00001203.406kg

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//#           ,         ,         

pattern = "##000.000kg";//1203.406kg

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//-       ,       

pattern = "-000.000";//-1203.406

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//,       :    12,03.41

pattern = "-0,00.0#";//-12,03.41

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//E       ,”E“            ,         。

pattern = "0.00E000";//1.20E003

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//%    100       ,     

pattern = "0.00%";//120340.56%

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//"\u2030"    1000       ,     

pattern = "0.00\u2030";//203405.61‰

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//"\u00A4"    ,     *****1203.41¥

pattern = "0.00\u00A4";//1203.41¥

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

//'                  ,        ,          :"# o''clock"。 

pattern = "'#'#" ;//#1203

//pattern = "'#'" ;//#1203

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

 

pattern = "# o''clock" ;//1203 o'clock

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

//''                ,              

//pattern = "# o''clock.000" ;//1203.406 o'clock

//pattern = "# .000o''clock";//1203.406 o'clock

//pattern = "# .000''";//1203.406 '

//pattern = "# .''000";//1203.406 '

pattern = "''# .000";//'1203.406 

df.applyPattern(pattern);

System.out.println("  " + pattern + "      :" + df.format(data));

}

}

出力結果:フォーマット前:1203.405607809 0.0モードフォーマット後:1203.4 000000000.000 kgモードフォーマット後:00001203.406 kg##000.000 kgモードフォーマット後:1203.406 kg-000.000モードフォーマット後:-1203.406 kg-000.000モードフォーマット後:-1203.406-0,00.0#モードフォーマット後:-12,03.41 0.00E 000モードフォーマット後:1.20 E 003 0.00%モードグリッド式化後:120340.56%0.00‰モードでフォーマットした後:1203405.61‰0.00モードでフォーマットした後:1203.41¥'#'#モードでフォーマットした後:1203#o''clockモードでフォーマットした後:1203 o'clock'#0.000モードでフォーマットした後:'1203.406
分析:
² Java.text.DecimalFormの構築方法でパターンを作成したり、applyPatternメソッドを使用してフォーマットモードを設定したりすることができます.
² フォーマットモードには特定のルールがあり、あまり文字が異なる意味を表し、使用中に自分でフォーマットを設計するモードが必要です.よく使われるパターンは「.」、「-」、「#」、「%」、「u 2030」、「,」「E」、「0」です.これらのパターンの具体的な意味については、プログラムコメントで詳しく説明されていますが、JDKのヘルプドキュメントを参照してください.