全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object
   |
   +----java.text.Format
           |
           +----java.text.NumberFormat
                   |
                   +----java.text.DecimalFormat
DecimalFormatは、10進数値をフォーマットするための NumberFormatの concreteサブクラスです。このクラスでは、さまざまなパラメータが使用でき、西欧、アラビア、インドの数字へのローカル化が可能です。
 通常、getInstanceなど NumberFormatのファクトリメソッドの 1つを使って、特定のロケール(デフォルトロケールを含む)に対する適切な NumberFormatを入手します。そうすれば、この後、これを修正することができます(もちろん、これが DecimalFormatであることをテストしてから)。
 
解析で正と負を区別するには、接頭部か接尾部が異なっていなければなりません。数字、1000、または小数のセパレータが同じものであったり、それらのどれかが接頭部や接尾部にある場合は、解析を信頼することはきません。
特別な場合:
 NaNは、単一文字(一般に \\uFFFD)としてフォーマットされます。
 
+/-Infinityは、単一文字(一般に \\u221E)と正と負の接頭部/接辞部としてフォーマットされます。
 
注: このクラスは、一般的なユーザのためのものです。非常に大きな数値や非常に小さな数値では、指数値を表すことのできるフォーマットを使用してください。
 
例:
  
 // normally we would have a GUI with a menu for this
 Locale[] locales = NumberFormat.getAvailableLocales();
 double myNumber = -1234.56;
 NumberFormat form;
 // just for fun, we print out a number with the locale number, currency
 // and percent format for each locale we can.
 for (int j = 0; j < 3; ++j) {
     System.out.println("FORMAT");
     for (int i = 0; i < locales.length; ++i) {
         if (locales[i].getCountry().length() == 0) {
            // skip language-only
            continue;
         }
         System.out.print(locales[i].getDisplayName());
         switch (j) {
         default:
             form = NumberFormat.getInstance(locales[i]); break;
         case 1:
             form = NumberFormat.getCurrencyInstance(locales[i]); break;
         case 0:
             form = NumberFormat.getPercentInstance(locales[i]); break;
         }
         try {
             System.out.print(": " + ((DecimalFormat)form).toPattern()
                          + " -> " + form.format(myNumber));
         } catch (IllegalArgumentException iae) { }
         try {
             System.out.println(" -> " + form.parse(form.format(myNumber)));
         } catch (ParseException pe) { }
     }
 }
 
 
 下記に示すのは、そのパターンの構造体です。
 
 pattern    := subpattern{;subpattern}
 subpattern := {prefix}integer{.fraction}{suffix}
 prefix     := '\\u0000'..'\\uFFFD' - specialCharacters
 suffix     := '\\u0000'..'\\uFFFD' - specialCharacters
 integer    := '#'* '0'* '0'
 fraction   := '0'* '#'*
 Notation:
  X*       x の 0 またはそれ以上のインスタンス
  (X | Y)  X か Y.
  X..Y     X から Y までの任意の文字
  S - T    S の中の文字。ただし、T の中のものは除く。
 最初のサブパターンは正の数値用です。2つめ(任意指定)のサブパターンは、負の数値用です。(どちらの場合も、整数部分に ','があります。BNFに示すと、非常に複雑になります。)
 下記に示すのは、サブパターンのあちこちで使用される特殊文字です。それらの使用法も示します。
記号 意味 0 数字 # 数字、ゼロだと表示されない。 . 小数セパレータの場所 , グループセパレータの場所 ; フォーマットを区切る。 - デフォルトの負接頭部 % 100 で割る。パーセントとして表示される。 X 接頭部や接尾部にはその他の任意の文字が使用できる。 ' 接頭部や接尾部で特殊文字を引用するときに使用する。
注
明示的な負のサブパターンがないと、- が正形式の前に付けられます。つまり、"0.00"単独は、"0.00;-0.00"と同じです。
"#.#.#"や、同じフォーマットに '_' と '*' を混在する場合など、フォーマットが正しくないと、ParseExceptionがスローされます。この ParseExceptionを調べれば、文字列の中のエラーがあった場所を見つけることができます。
 
グループ化セパレータは一般に 1000で使用しますが、国によっては 10000で使用するところもあります。この間隔は、100,000,000 や 1,0000,0000 のように、グループ化文字の間の一定数の桁数です。複数のグループ化文字をもつパターンを指定すると、最後の文字と整数の終わりの間が、この間隔として使用されます。したがって、"#,##,###,####" == "######,####" == "##,####,####"となります。
このクラスは、Unicodeで 10 個の数字(0 から 9)が連続しているローカル化された数字だけを扱います。その他の数字セット(スーパースクリプトなど)には、別のサブクラスが必要です。
 
 DecimalFormat()
	DecimalFormat()
   DecimalFormat(String)
	DecimalFormat(String)
   DecimalFormat(String, DecimalFormatSymbols)
	DecimalFormat(String, DecimalFormatSymbols)
   
 applyLocalizedPattern(String)
	applyLocalizedPattern(String)
   applyPattern(String)
	applyPattern(String)
   clone()
	clone()
   equals(Object)
	equals(Object)
   format(double, StringBuffer, FieldPosition)
	format(double, StringBuffer, FieldPosition)
   format(long, StringBuffer, FieldPosition)
	format(long, StringBuffer, FieldPosition)
   getDecimalFormatSymbols()
	getDecimalFormatSymbols()
   getGroupingSize()
	getGroupingSize()
   getMultiplier()
	getMultiplier()
   getNegativePrefix()
	getNegativePrefix()
   getNegativeSuffix()
	getNegativeSuffix()
   getPositivePrefix()
	getPositivePrefix()
   getPositiveSuffix()
	getPositiveSuffix()
   hashCode()
	hashCode()
   isDecimalSeparatorAlwaysShown()
	isDecimalSeparatorAlwaysShown()
   parse(String, ParsePosition)
	parse(String, ParsePosition)
   setDecimalFormatSymbols(DecimalFormatSymbols)
	setDecimalFormatSymbols(DecimalFormatSymbols)
   setDecimalSeparatorAlwaysShown(boolean)
	setDecimalSeparatorAlwaysShown(boolean)
   setGroupingSize(int)
	setGroupingSize(int)
   setMultiplier(int)
	setMultiplier(int)
   setNegativePrefix(String)
	setNegativePrefix(String)
   setNegativeSuffix(String)
	setNegativeSuffix(String)
   setPositivePrefix(String)
	setPositivePrefix(String)
   setPositiveSuffix(String)
	setPositiveSuffix(String)
   toLocalizedPattern()
	toLocalizedPattern()
   toPattern()
	toPattern()
   
 DecimalFormat
DecimalFormat
public DecimalFormat()
指定するロケールに対する標準フォーマットを得るには、getNumberInstanceなど、NumberFormat のファクトリメソッドを使用してください。これらのファクトリメソッドは、指定するロケールに対する NumberFormatの最適なサブクラスを返します。
 DecimalFormat
DecimalFormat
public DecimalFormat(String pattern)
指定するロケールに対する標準フォーマットを得るには、getNumberInstanceなど、NumberFormat のファクトリメソッドを使用してください。これらのファクトリメソッドは、指定するロケールに対する NumberFormatの最適なサブクラスを返します。
 DecimalFormat
DecimalFormat
  public DecimalFormat(String pattern,
                       DecimalFormatSymbols symbols)
指定するロケールに対する標準フォーマットを得るには、getInstanceや getCurrencyInstanceなど、NumberFormat のファクトリメソッドを使用してください。標準フォーマットをわずかに調整するだけであれば、NumberFormatファクトリメソッドで返されたフォーマットを修正することができます。
 
 format
format
  public StringBuffer format(double number,
                             StringBuffer result,
                             FieldPosition fieldPosition)
 format
format
  public StringBuffer format(long number,
                             StringBuffer result,
                             FieldPosition fieldPosition)
 parse
parse
  public Number parse(String text,
                      ParsePosition status)
 getDecimalFormatSymbols
getDecimalFormatSymbols
public DecimalFormatSymbols getDecimalFormatSymbols()
 setDecimalFormatSymbols
setDecimalFormatSymbols
public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
 getPositivePrefix
getPositivePrefix
public String getPositivePrefix()
例: +123, $123, sFr123
 setPositivePrefix
setPositivePrefix
public void setPositivePrefix(String newValue)
例: +123, $123, sFr123
 getNegativePrefix
getNegativePrefix
public String getNegativePrefix()
例: -123, ($123) (負の接尾部付き), sFr-123
 setNegativePrefix
setNegativePrefix
public void setNegativePrefix(String newValue)
例: -123, ($123) (負の接尾部付き), sFr-123
 getPositiveSuffix
getPositiveSuffix
public String getPositiveSuffix()
例: 123%
 setPositiveSuffix
setPositiveSuffix
public void setPositiveSuffix(String newValue)
例: 123%
 getNegativeSuffix
getNegativeSuffix
public String getNegativeSuffix()
例: -123%, ($123) (正の接尾部付き)
 setNegativeSuffix
setNegativeSuffix
public void setNegativeSuffix(String newValue)
例: 123%
 getMultiplier
getMultiplier
public int getMultiplier()
例: 100の場合、1.23 -> "123"、"123" -> 1.23
 setMultiplier
setMultiplier
public void setMultiplier(int newValue)
例: 100の場合、1.23 -> "123"、"123" -> 1.23
 getGroupingSize
getGroupingSize
public int getGroupingSize()
 setGroupingSize
setGroupingSize
public void setGroupingSize(int newValue)
 isDecimalSeparatorAlwaysShown
isDecimalSeparatorAlwaysShown
public boolean isDecimalSeparatorAlwaysShown()
例: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345
 setDecimalSeparatorAlwaysShown
setDecimalSeparatorAlwaysShown
public void setDecimalSeparatorAlwaysShown(boolean newValue)
例: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345
 clone
clone
public Object clone()
 equals
equals
public boolean equals(Object obj)
 hashCode
hashCode
public int hashCode()
 toPattern
toPattern
public String toPattern()
 toLocalizedPattern
toLocalizedPattern
public String toLocalizedPattern()
 applyPattern
applyPattern
public void applyPattern(String pattern)
このルーチンで設定される整数の桁数に制限はありません。これが一般に、エンドユーザの要求だからです。実際の値を設定したい場合は、setMaximumIntegerを使用してください。負の数値の場合は、セミコロンで区切った 2つめのパターンを使用します。
例 "#,#00.0#" -> 1,234.56
これは、最小 2桁の整数、1つの小数点、最大 2桁の小数位を意味します。
例: "#,#00.0#;(#,#00.0#)"(負の数値用はかっこで囲む)
負のパターンでは、最小と最大の桁数は無視されます。これらは、正のパターンで設定されるものとみなされます。
 applyLocalizedPattern
applyLocalizedPattern
public void applyLocalizedPattern(String pattern)
このルーチンで設定される整数の桁数に制限はありません。これが一般に、エンドユーザの要求だからです。実際の値を設定したい場合は、setMaximumIntegerを使用してください。負の数値の場合は、セミコロンで区切った 2つめのパターンを使用します。
例 "#,#00.0#" -> 1,234.56
これは、最小 2桁の整数、1つの小数点、最大 2桁の小数位を意味します。
例: "#,#00.0#;(#,#00.0#)"(負の数値用はかっこで囲む)
負のパターンでは、最小と最大の桁数は無視されます。これらは、正のパターンで設定されるものとみなされます。
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス