クラスDecimalFormat

すべての実装されたインタフェース:
Serializable, Cloneable

public class DecimalFormat extends NumberFormat
DecimalFormatは、10進数をローカライズされた方法で書式設定するNumberFormatの具象サブクラスです。 これには、西欧、アラビア、およびインド数字に対するサポートを含むさまざまな機能が用意されており、任意のロケールで数値の解析とフォーマットが実行できるよう設計されています。 また、整数(123)、固定小数値(123.4)、科学表記法(1.23E4)、パーセント(12%)、および通貨金額($123)などのさまざまな種類の数値もサポートしています。

DecimalFormatの取得

特定のロケール(デフォルト・ロケールを含む)の標準の10進形式を取得するには、NumberFormat.getInstance()などのNumberFormat factory methodsのいずれかをコールすることをお薦めします。 これらのファクトリ・メソッドは、インストールされているロケール・サービス・プロバイダの実装によっては、常にDecimalFormatを返すとはかぎりません。 したがって、DecimalFormatによって定義されたインスタンス・メソッドを使用するには、ファクトリ・メソッドによって返されるNumberFormatは、DecimalFormatに変換する前に型を確認する必要があります。 インストールされているロケール依存のサービス実装が、指定されたLocaleをサポートしていない場合、親ロケール・チェーンが検索され、サポートされているLocaleが使用されます。

ファクトリ・メソッドが不要な場合は、DecimalFormat(String pattern)などのコンストラクタのいずれかを使用します。 patternパラメータの詳細は、Patternの項を参照してください。

DecimalFormatの使用

次に、書式設定と解析の例を示します。
NumberFormat nFmt = NumberFormat.getCurrencyInstance(Locale.US);
if (nFmt instanceof DecimalFormat dFmt) {
    // pattern match to DecimalFormat to use setPositiveSuffix(String)
    dFmt.setPositiveSuffix(" dollars");
    dFmt.format(100000); // returns "$100,000.00 dollars"
    dFmt.parse("$100,000.00 dollars"); // returns 100000
}

書式設定と解析

丸め

書式設定時に、DecimalFormatsetRoundingMode(RoundingMode)を使用して丸めを調整できます。 デフォルトでは、RoundingMode.HALF_EVENが使用されます。

Digits

書式設定時、DecimalFormatは、DecimalFormatSymbolsオブジェクトで定義されているローカライズされたゼロ桁から始まる10文字の連続した文字を数字として使用します。

解析時に、Character.digitで定義されているすべてのUnicode 10進数だけでなく、これらの数字も認識されます。

整数および小数桁数の制限

実装要件:
BigIntegerおよびBigDecimal以外のNumberをフォーマットする場合、整数桁数の上限として309が使用され、小数桁数の上限として340が使用されます。 これは、DecimalFormatゲッター・メソッドのいずれか(たとえば、getMinimumFractionDigits())が数値的に大きい値を返した場合でも発生します。

特殊な値

  • 「数値ではありません」 (NaN)は文字列として書式設定され、通常は"NaN"と指定されます。 この文字列は、DecimalFormatSymbols.getNaN()によって決定されます。 プレフィクスとサフィクスが添付されていないのは、この値のみです。

  • 「無限大」は文字列として書式設定され、通常は"∞" (U+221E)と指定され、正または負のプレフィクスとサフィクスが添付されます。 この文字列は、DecimalFormatSymbols.getInfinity()によって決定されます。

  • 「負のゼロ」 ("-0")の解析先

    • isParseBigDecimal()がtrueの場合はBigDecimal(0)
    • isParseBigDecimal()がfalseで、isParseIntegerOnly()がtrueの場合はLong(0)
    • isParseBigDecimal()isParseIntegerOnly()がどちらもfalseである場合はDouble(-0.0)と解析されます

Synchronization

decimalフォーマットは同期化されません。 スレッドごとに別のフォーマット・インスタンスを作成することをお薦めします。 複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。

DecimalFormatパターン

DecimalFormatパターンおよび記号のセットで構成されます。 パターンは、applyPattern()を使用して直接設定することも、様々なAPIメソッドを使用して間接的に設定することもできます。 記号は DecimalFormatSymbolsオブジェクトに格納されます。 NumberFormatファクトリ・メソッドを使用する場合、インストールされているロケール依存のサービス実装からパターンおよび記号が作成されます。

DecimalFormatの構文を次に示します。

 Pattern:
         PositivePattern
         PositivePattern ; NegativePattern
 PositivePattern:
         Prefixopt Number Suffixopt
 NegativePattern:
         Prefixopt Number Suffixopt
 Prefix:
         Any characters except the special pattern characters
 Suffix:
         Any characters except the special pattern characters
 Number:
         Integer Exponentopt
         Integer . Fraction Exponentopt
 Integer:
         MinimumInteger
         #
         # Integer
         # , Integer
 MinimumInteger:
         0
         0 MinimumInteger
         0 , MinimumInteger
 Fraction:
         MinimumFractionopt OptionalFractionopt
 MinimumFraction:
         0 MinimumFractionopt
 OptionalFraction:
         # OptionalFractionopt
 Exponent:
         E MinimumExponent
 MinimumExponent:
         0 MinimumExponentopt
 

特殊パターン文字

次の表の特殊文字は、DecimalFormatパターンで使用すると構文的に解釈されます。 特殊文字は、接頭辞や接尾辞にリテラルとして表示する場合は、特に指示がないかぎり、引用符で囲む必要があります。

Symbol列の文字は、ローカライズされていないパターンで使用されます。 Localized Symbol列の対応する文字は、ローカライズされたパターンで使用され、Symbolの文字は構文上の意味を失います。 2つの例外は、通貨記号(U+00A4)と、ローカライズされていない引用符(U+0027)です。

applyPattern(String)をコールする場合は、ローカライズされていないパターンを使用する必要があります。 ローカライズされたパターンは、applyLocalizedPattern(String)をコールするときに使用する必要があります。

記号、位置、ローカライズ、および意味を示すチャート。
シンボル ローカライズされたシンボル ロケーション Meaning
0 DecimalFormatSymbols.getZeroDigit() 数値 数字
# DecimalFormatSymbols.getDigit() 数値 数字。ゼロだと表示されない
. DecimalFormatSymbols.getDecimalSeparator() 数値 数値桁区切り子または通貨桁区切り子
- (U+002D) DecimalFormatSymbols.getMinusSign() 数値 負符号
, DecimalFormatSymbols.getGroupingSeparator() 数値 グループ化セパレータまたは通貨グループ化セパレータ
E DecimalFormatSymbols.getExponentSeparator() 数値 科学表記法の仮数と指数を区切る。 この値は大/小文字が区別されます。 接頭辞や接尾辞内に引用符を付ける必要はない。
; DecimalFormatSymbols.getPatternSeparator() サブパターンの境界 正と負のサブパターンを区切る
% DecimalFormatSymbols.getPercent() 接頭辞または接尾辞 100を乗算してパーセントで表示します。
‰ (U+2030) DecimalFormatSymbols.getPerMill() 接頭辞または接尾辞 1000倍してパーミル値を表す
¤ (U+00A4) n/a (ローカライズされていません) 接頭辞または接尾辞 通貨記号で置換される通貨符号。 2つの場合は、国際通貨記号で置換される。 パターンに含まれている場合は、小数点/グループ・セパレータのかわりに通貨小数点/グループ・セパレータが使用されます。
' (U+0027) n/a (ローカライズされていません) 接頭辞または接尾辞 接頭辞や接尾辞内の特殊文字を引用符で囲む場合に使用される。たとえば、"'#'#"を使用すると123は"#123"にフォーマットされる。 単一引用符自体を作成するには、1行に2つ引用符を使用する("#o''clock")。

最大桁の導出

任意のDecimalFormatパターンについて、パターンが科学表記でない場合、整数桁の最大数はパターンから導出されず、かわりにInteger.MAX_VALUEに設定されます。 それ以外の場合、パターンが科学的な表記法であれば、整数の最大桁数がパターンから導出されます。 この導出の詳細は、Scientific Notationの項を参照してください。setMaximumIntegerDigits(int)を使用して、整数の最大桁数を手動で調整できます。

マイナスのサブパターン

DecimalFormatパターンには"#,##0.00;(#,##0.00)"などの、正と負のサブパターンがあります。 各サブパターンには、プリフィクス、数値部分およびサフィックスが含まれます。 マイナスのサブパターンはオプションです。存在しない場合、マイナス記号'-' (U+002D HYPHEN-MINUS)が付いた正のサブパターンがマイナス・サブパターンとして使用されます。 つまり、単独の"0.00""0.00;-0.00"と等価になります。 明示的なマイナスのサブパターンがある場合は、マイナスの接頭辞と接尾辞を指定するだけです。桁数、最小桁数、その他の属性はすべてプラスのパターンと同じです。 これは"#,##0.0#;(#)""#,##0.0#;(#,##0.0#)"と正確に同じ結果になることを意味します。

無限大、数字、グルーピング・セパレータ、小数点などに使用されるプレフィクス、サフィクスおよび様々な記号は、任意の値に設定でき、書式設定時に正しく表示されます。 ただし、記号と文字列が矛盾しないように注意をしないと、解析は信頼性を持ちません。 たとえば、DecimalFormat.parse()で正の値と負の値を区別できるように、正と負の接頭辞や接尾辞は異なる必要があります。 同一であると、DecimalFormatは負のサブパターンが指定されていないものとして動作します。 別の例として、小数点セパレータとグループ・セパレータは個別の文字にする必要があり、そうしないと解析できません。

グループ化セパレータ

グループ化セパレータは、通常千単位に使用されますが、一部のロケールでは1万単位で区切ります。 グループ区切りのサイズとは、100,000,000の場合は3、1,0000,0000の場合は4というように、グループ区切り文字間の一定の桁数です。 複数のグループ区切り文字を持つパターンを指定すると、最後の区切り文字と末尾の整数との間が、この間隔として使用されます。 たとえば、"#,##,###,####" == "######,####" == "##,####,####"です。

科学表記法

科学表記法の数値は仮数と10の累乗の結果として表されます。たとえば、1234は1.234 x 10^3として表されます。 仮数の多くは1.0 ≤ x < 10.0の範囲内ですが、必ずしもこの範囲内である必要はありません。 DecimalFormatには、パターンだけを介して科学表記法をフォーマットおよび解析するよう指示できます。現在、科学表記法形式を作成するファクトリ・メソッドはありません。 パターンでは、指数文字の直後に1つ以上の数字を続けて科学表記法を示します。 例:"0.###E0"では、1234は"1.234E3"のようにフォーマットされます。

  • 指数文字の後ろの数字の個数は、指数の最小桁数を示します。 最大桁数はありません。 負の指数は、パターンによる接頭辞や接尾辞ではなく、ローカライズされたマイナス記号を使用してフォーマットされます。 これによって、"0.###E0 m/s"などのパターンが許可されます。
  • 「最大整数」桁は、小数点の前にある'0'sと'#'sの合計です。 「最小整数」桁は、小数点の前にある0の合計です。 「最大分数」および「最小小数」桁は同じルールに従いますが、指数の前にある小数点の後の桁に適用されます。 たとえば、次のパターンです: "#00.0####E0"には、最小整数桁数= 2("00")、最大整数桁数= 3("#00")を指定します。 最小小数桁数= 1("0")、最大小数桁数= 5("0####")になります。
  • 整数の最小桁数と最大桁数は同時に解釈されます。
    • 整数の最大桁数がその最小桁数より大きく、1より大きい場合、指数は整数の最大桁数の倍数になり、整数の最小桁数は1として解釈されます。 これは、技術表記法の場合によく使用されます。この場合、指数は"##0.#####E0"などのように3の倍数になります。 このパターンを使用すると、数値12345は"12.345E3"に、123456は"123.456E3"にフォーマットされます。
    • そうでない場合、整数の最小桁数は指数を調整することによって得られます。 例: 0.00123は"00.###E0"を使用して"12.3E-4"とフォーマットされます。
  • 特定の数値について、マンティッサの有効桁数を次のように計算できます
     Mantissa Digits:
             min(max(Minimum Pattern Digits, Original Number Digits), Maximum Pattern Digits)
     Minimum pattern Digits:
             Minimum Integer Digits + Minimum Fraction Digits
     Maximum pattern Digits:
             Maximum Integer Digits + Maximum Fraction Digits
     Original Number Digits:
             The amount of significant digits in the number to be formatted
     
    これは、元の数値自体に十分な有効桁がある場合、通常、mantissaには最大で整数と小数桁が結合されることを意味します。 ただし、元の数値の有効桁数よりもパターンの最小桁数が多い場合、mantissaには、最小整数と小数桁数の合計に等しい有効桁数が設定されます。 有効桁数は解析に影響しません。

    マンティサの整数部は、精度であるか、または結合された最小桁の合計金額を満たすかに関係なく、小数部分に余分な桁を与えることに注意してください。

    この動作は、次の例で確認できます。

        DecimalFormat df = new DecimalFormat("#000.000##E0");
        df.format(12); // returns "12.0000E0"
        df.format(123456789) // returns "1.23456789E8"
    
  • 指数パターンにはグループ区切り子が含まれない場合があります。

導入されたバージョン:
1.1
外部仕様
関連項目:
  • コンストラクタの詳細

    • DecimalFormat

      public DecimalFormat()
      デフォルトのFORMATロケールに対して、デフォルトのパターンと記号を使ってDecimalFormatを作成します。 これは、国際化が主要な問題でない場合は、DecimalFormatを得るためには簡単な方法です。

      指定されたロケールに対する標準フォーマットを得るには、getNumberInstanceなど、NumberFormatのファクトリ・メソッドを使用してください。 これらのファクトリ・メソッドは、指定されたロケールに対するNumberFormatの最適なサブクラスを返します。

      関連項目:
    • DecimalFormat

      public DecimalFormat(String pattern)
      デフォルトのFORMATロケールに対して、指定されたパターンと記号を使ってDecimalFormatを作成します。 これは、国際化が主要な問題でない場合は、DecimalFormatを得るためには簡単な方法です。 通常、最大整数の桁数はパターンから導出されません。 詳細は、Patternsの項のノートを参照してください。

      指定されたロケールに対する標準フォーマットを得るには、getNumberInstanceなど、NumberFormatのファクトリ・メソッドを使用してください。 これらのファクトリ・メソッドは、指定されたロケールに対するNumberFormatの最適なサブクラスを返します。

      パラメータ:
      pattern - ローカライズされていないパターン文字列。
      例外:
      NullPointerException - patternがnullである場合
      IllegalArgumentException - 指定されたパターンが無効な場合。
      関連項目:
    • DecimalFormat

      public DecimalFormat(String pattern, DecimalFormatSymbols symbols)
      指定されたパターンと記号を使ってDecimalFormatを作成します。 フォーマットの動作を完全にカスタマイズする必要がある場合には、このコンストラクタを使ってください。 通常、最大整数の桁数はパターンから導出されません。 詳細は、Patternsの項のノートを参照してください。

      指定されたロケールに対する標準フォーマットを得るには、getInstanceやgetCurrencyInstanceなど、NumberFormatのファクトリ・メソッドを使用してください。 標準フォーマットをわずかに調整するだけであれば、NumberFormatファクトリ・メソッドで返されたフォーマットを修正することができます。

      パラメータ:
      pattern - ローカライズされていないパターン文字列
      symbols - 使用する記号セット
      例外:
      NullPointerException - 指定された引数が1つでもnullの場合
      IllegalArgumentException - 指定されたパターンが無効な場合
      関連項目:
  • メソッドの詳細

    • format

      public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
      数値をフォーマットし、その結果のテキストを指定された文字列バッファに追加します。 指定可能な数値は、Numberの任意のサブクラスです。

      この実装は最大許容精度を使用します。

      オーバーライド:
      format、クラスNumberFormat
      パラメータ:
      number - フォーマットする数値
      toAppendTo - フォーマット後のテキストを追加するStringBuffer
      pos - 返された文字列内のフィールドの位置を追跡します。 たとえば、Locale.USロケールで数値1234567.89を書式設定する場合、指定されたfieldPositionNumberFormat.INTEGER_FIELDの場合、出力文字列1,234,567.89では、fieldPositionの開始索引および終了索引がそれぞれ0および9に設定されます。
      戻り値:
      toAppendToとして渡された値
      例外:
      IllegalArgumentException - numberがnullであるか、Numberのインスタンスでない場合。
      NullPointerException - toAppendToまたはposがnullの場合
      ArithmeticException - 丸め処理が必要な場合に丸めモードがRoundingMode.UNNECESSARYに設定されているとき
      関連項目:
    • format

      public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
      doubleをフォーマットして文字列を作成します。
      定義:
      format、クラスNumberFormat
      パラメータ:
      number - フォーマットするdouble
      result - テキストを追加する位置
      fieldPosition - 返された文字列内のフィールドの位置を追跡します。 たとえば、Locale.USロケールで数値1234567.89を書式設定する場合、指定されたfieldPositionNumberFormat.INTEGER_FIELDの場合、出力文字列1,234,567.89では、fieldPositionの開始索引および終了索引がそれぞれ0および9に設定されます。
      戻り値:
      フォーマットされた数値文字列
      例外:
      NullPointerException - resultまたはfieldPositionnullの場合
      ArithmeticException - 丸め処理が必要な場合に丸めモードがRoundingMode.UNNECESSARYに設定されているとき
      関連項目:
    • format

      public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
      longをフォーマットして文字列を作成します。
      定義:
      format、クラスNumberFormat
      パラメータ:
      number - フォーマットするlong
      result - テキストを追加する位置
      fieldPosition - 返された文字列内のフィールドの位置を追跡します。 たとえば、Locale.USロケールの数値123456789を書式設定する場合、指定されたfieldPositionNumberFormat.INTEGER_FIELDの場合、出力文字列123,456,789では、fieldPositionの開始索引および終了索引がそれぞれ0および11に設定されます。
      戻り値:
      フォーマットされた数値文字列
      例外:
      NullPointerException - resultまたはfieldPositionnullの場合
      ArithmeticException - 丸め処理が必要な場合に丸めモードがRoundingMode.UNNECESSARYに設定されているとき
      関連項目:
    • formatToCharacterIterator

      public AttributedCharacterIterator formatToCharacterIterator(Object obj)
      Objectをフォーマットし、AttributedCharacterIteratorを生成します。 返されたAttributedCharacterIteratorを使用すると、結果のStringを構築できるとともに、結果のStringについての情報を判定できます。

      AttributedCharacterIteratorの各属性キーはNumberFormat.Field型です。属性値は属性キーと同一です。

      オーバーライド:
      formatToCharacterIterator、クラスFormat
      パラメータ:
      obj - フォーマットするオブジェクト
      戻り値:
      フォーマットされた値を説明するAttributedCharacterIterator。
      例外:
      NullPointerException - objがnullの場合。
      IllegalArgumentException - 指定されたオブジェクトをFormatでフォーマットできない場合。
      ArithmeticException - 丸め処理が必要な場合に丸めモードがRoundingMode.UNNECESSARYに設定されているとき
      導入されたバージョン:
      1.4
    • parse

      public Number parse(String text, ParsePosition pos)
      指定された文字列の先頭からテキストを解析して、Numberを生成します。

      このメソッドは、ParsePositionで指定されたインデックスから始まるテキストを解析しようとします。 解析が成功すると、 ParsePositionの索引は、最後に(解析では、必ずしも文字列の末尾までのすべての文字が使用されるわけではありません。)が使用された文字の後に索引に更新され、解析された番号が返されます。 更新された ParsePositionは、このメソッドへの次のコールの開始点を示すために使用できます。 エラーが発生した場合、ParsePositionの索引は変更されず、ParsePositionのエラー索引はエラーが発生した文字の索引に設定され、nullが返されます。

      このメソッドは、可能な場合はLongを(たとえば、[Long.MIN_VALUE, Long.MAX_VALUE]の範囲内および小数なし)、それ以外の場合はDoubleを返します。

      解析は厳密または非厳密の方法で行うことができ、デフォルトでは非厳密です。

      「非厳密」の場合、プリフィクスまたはサフィクス(あるいはその両方)が空でなく、早期に終了する解析のために見つからない場合、またはプリフィクスの後の最初の文字を解析できない場合、解析は失敗します。

      stricttextの場合、解析は失敗

      戻り値のサブクラスは、isParseBigDecimal()の値と解析対象文字列によって決まります。

      • isParseBigDecimal()がfalse (デフォルト値)の場合、整数値の大部分は、その記述形式にかかわらず、Longオブジェクトとして返されます。"17""17.000"はどちらも、Long(17)として解析されます。 Longに当てはまらない値はDoubleとして返されます。 これには小数部分を持つ値、無限大の値、NaN、および値 -0.0などが含まれます。 DecimalFormatは、DoubleLongのいずれを返すかを、ソース文字列内での小数区切り文字の有無で判断するわけではありません かりにそうした場合は、"-9,223,372,036,854,775,808.00"などのdoubleの仮数をオーバーフローする整数を、正確に解析できなくなります。

        呼出し元は、NumberのメソッドdoubleValuelongValueを用いることで、値を必要な型として取得できます。

      • isParseBigDecimal()がtrueの場合、値はBigDecimalオブジェクトとして返されます。 値は、ロケールに依存しない形式の対応する文字列に対して、BigDecimal(String)によって構築される値です。 ただし、特殊な値(正負の無限大やNaNなど)は、対応するDouble定数値を含むDoubleインスタンスとして返されます。

      DecimalFormatは、Character.digit()で定義されている10進数字を表すすべてのUnicode文字を解析します。 さらにDecimalFormatは、DecimalFormatSymbolsオブジェクトで定義されているローカライズされたゼロ数字で始まる10個の連続した文字を数字として認識します。

      定義:
      parse、クラスNumberFormat
      パラメータ:
      text - 解析される文字列
      pos - 上記のインデックスおよびエラー・インデックス情報を持つParsePositionオブジェクト
      戻り値:
      解析された値。解析が失敗した場合はnull
      例外:
      NullPointerException - textまたはposがnullの場合。
      関連項目:
    • getDecimalFormatSymbols

      public DecimalFormatSymbols getDecimalFormatSymbols()
      数値桁区切り文字のコピーを返します。これは通常、プログラマやユーザーによって変更されません。
      戻り値:
      必要なDecimalFormatSymbolsのコピー
      関連項目:
    • setDecimalFormatSymbols

      public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
      数値桁区切り文字を設定します。これは通常、プログラマやユーザーによって変更されません。
      パラメータ:
      newSymbols - 必要なDecimalFormatSymbols
      関連項目:
    • getPositivePrefix

      public String getPositivePrefix()
      正の接頭辞を取得します。

      例+123、$123、sFr123

      戻り値:
      正の接頭辞
    • setPositivePrefix

      public void setPositivePrefix(String newValue)
      正の接頭辞を設定します。

      例+123、$123、sFr123

      パラメータ:
      newValue - 新しい正の接頭辞
    • getNegativePrefix

      public String getNegativePrefix()
      負の接頭辞を取得します。

      例-123、($123)(負の接尾辞付き)、sFr-123

      戻り値:
      負の接頭辞
    • setNegativePrefix

      public void setNegativePrefix(String newValue)
      負の接頭辞を設定します。

      例-123、($123)(負の接尾辞付き)、sFr-123

      パラメータ:
      newValue - 新しい負の接頭辞
    • getPositiveSuffix

      public String getPositiveSuffix()
      正の接尾辞を取得します。

      例: 123%

      戻り値:
      正の接尾辞
    • setPositiveSuffix

      public void setPositiveSuffix(String newValue)
      正の接尾辞を設定します。

      例: 123%

      パラメータ:
      newValue - 新しい正の接尾辞
    • getNegativeSuffix

      public String getNegativeSuffix()
      負の接尾辞を取得します。

      例-123%、($123)(正の接尾辞付き)

      戻り値:
      負の接尾辞
    • setNegativeSuffix

      public void setNegativeSuffix(String newValue)
      負の接尾辞を設定します。

      例123%

      パラメータ:
      newValue - 新しい負の接尾辞
    • getMultiplier

      public int getMultiplier()
      パーセント、パーミル(1000)、およびその類似フォーマットで使用する乗数を取得します。
      戻り値:
      乗数
      関連項目:
    • setMultiplier

      public void setMultiplier(int newValue)
      パーセント、パーミル(1000)、およびその類似フォーマットで使用する乗数を設定します。 パーセントでは、乗数として100を、接尾辞として%を設定します(アラビア語では異なるパーセント記号を使用する)。 mille形式ごとに、乗数を1000に設定し、サフィクスを'U+2030'に設定します。

      例: 乗数100の場合、1.23のフォーマット結果は"123"、"123"の解析結果は1.23になる。

      パラメータ:
      newValue - 新しい乗数
      関連項目:
    • getGroupingSize

      public int getGroupingSize()
      グループ化サイズを返します。 グループ化サイズとは、数値の整数部分における区切り文字と区切り文字の間の桁数です。 たとえば、数値123,456.78の場合、グループ化サイズは3です。 グループ化サイズを0に設定すると、グループ化は使用されず、setGroupingUsed(false)をコールする場合と同じ書式設定が行われます。
      戻り値:
      グループ化サイズ
      関連項目:
    • setGroupingSize

      public void setGroupingSize(int newValue)
      グループ化サイズを設定します。 グループ化サイズとは、数値の整数部分における区切り文字と区切り文字の間の桁数です。 たとえば、数値123,456.78の場合、グループ化サイズは3です。 グループ化サイズを0に設定すると、グループ化は使用されず、setGroupingUsed(false)をコールする場合と同じ書式設定が行われます。

      引数として渡された値はバイトに変換されるため、情報が失われる可能性があります。 Byte.MAX_VALUE以上の負の値はIllegalArgumentExceptionをスローします。

      パラメータ:
      newValue - 新しいグループ化サイズ
      例外:
      IllegalArgumentException - newValueが、負の数またはByte.MAX_VALUEより大きいか
      関連項目:
    • isDecimalSeparatorAlwaysShown

      public boolean isDecimalSeparatorAlwaysShown()
      整数と区別する小数点の動作を取得します。 (小数位では小数点が常に表示される)。

      例: Decimal ON: 12345 → 12345.; OFF: 12345 → 12345

      戻り値:
      小数点区切り記号が常に表示される場合はtrue、そうでない場合はfalse
    • setDecimalSeparatorAlwaysShown

      public void setDecimalSeparatorAlwaysShown(boolean newValue)
      整数と区別する小数点の動作を設定します。 (小数位では小数点が常に表示される)。

      例: Decimal ON: 12345 → 12345.; OFF: 12345 → 12345

      パラメータ:
      newValue - 小数点区切り記号が常に表示される場合はtrue、そうでない場合はfalse
    • isStrict

      public boolean isStrict()
      この書式で数値が厳密に解析される場合はtrue、それ以外の場合はfalseを返します。
      オーバーライド:
      クラスNumberFormatisStrict
      戻り値:
      この書式で番号が厳密に解析される場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      23
      関連項目:
    • setStrict

      public void setStrict(boolean strict)
      解析する非厳密値を変更します。 解析は厳密でも非厳密でもかまいません。デフォルトでは非厳密です。
      オーバーライド:
      クラスNumberFormatsetStrict
      パラメータ:
      strict - 解析を厳密に実行する場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      23
      関連項目:
    • isParseBigDecimal

      public boolean isParseBigDecimal()
      parse(java.lang.String, java.text.ParsePosition)メソッドがBigDecimalを返すかどうかを返します。 デフォルト値はfalseです。
      戻り値:
      この解析メソッドがBigDecimalを返す場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.5
      関連項目:
    • setParseBigDecimal

      public void setParseBigDecimal(boolean newValue)
      parse(java.lang.String, java.text.ParsePosition)メソッドがBigDecimalを返すかどうかを設定します。
      パラメータ:
      newValue - この解析メソッドがBigDecimalを返す場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.5
      関連項目:
    • clone

      public Object clone()
      標準オーバーライドです。セマンティックスは変わりません。
      オーバーライド:
      clone、クラスNumberFormat
      戻り値:
      このインスタンスの複製。
      関連項目:
    • equals

      public boolean equals(Object obj)
      指定されたオブジェクトをこのDecimalFormatと比較し、等しいかどうかを確認します。 オブジェクトがDecimalFormatでもあり、2つの書式で値が同じ書式である場合、trueを返します。
      オーバーライド:
      equals、クラスNumberFormat
      実装要件:
      このメソッドは、instanceofではなく、getClass()に基づくクラス・アイデンティティの概念を使用して等価チェックを実行します。 したがって、サブクラスのequalsメソッドでは、このクラスのインスタンスはサブクラスのインスタンスと等しく比較されません。
      パラメータ:
      obj - 等価性のために比較されるオブジェクト
      戻り値:
      指定されたオブジェクトがこのDecimalFormatと等しい場合はtrue
      関連項目:
    • hashCode

      public int hashCode()
      このDecimalFormatのハッシュ・コードを返します。
      オーバーライド:
      hashCode、クラスNumberFormat
      実装要件:
      このメソッドは、getPositivePrefix()およびNumberFormat.hashCode()から返された値を使用してハッシュ・コード値を計算します。
      戻り値:
      このDecimalFormatのハッシュ・コード
      関連項目:
    • toString

      public String toString()
      デバッグ用に、このDecimalFormatを識別する文字列を返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      デバッグ用に、このDecimalFormatを識別する文字列
    • toPattern

      public String toPattern()
      このFormatオブジェクトの現在の状態を表すパターン文字列を総合します。
      戻り値:
      パターン文字列
      関連項目:
    • toLocalizedPattern

      public String toLocalizedPattern()
      このFormatオブジェクトの現在の状態を表すローカライズされたパターン文字列を総合します。
      戻り値:
      ローカライズされたパターン文字
      関連項目:
    • applyPattern

      public void applyPattern(String pattern)
      指定されたパターンをこのFormatオブジェクトに適用します。 パターンとは、各種のフォーマット特性に対する簡略仕様です。 これらの特性は、各設定機能メソッドで個別に変更することもできます。

      通常、最大整数の桁数はパターンから導出されません。 詳細は、Patternsの項のノートを参照してください。 負の数値の場合は、セミコロンで区切った2つめのパターンを使用します。

      "#,#00.0#" → 1,234.56

      これは、最小2桁の整数、1つの小数点、最大2桁の小数を意味します。

      例: "#,#00.0#;(#,#00.0#)" (負の数値は括弧で囲む)。

      負のパターンでは、最小と最大の桁数は無視されます。これらは、正のパターンで設定されるものと見なされます。

      パラメータ:
      pattern - 新しいパターン
      例外:
      NullPointerException - patternがnullである場合
      IllegalArgumentException - 指定されたパターンが無効な場合。
    • applyLocalizedPattern

      public void applyLocalizedPattern(String pattern)
      指定されたパターンをこのFormatオブジェクトに適用します。 このパターンの表記は、ローカライズされているものと見なされます。 パターンとは、各種のフォーマット特性に対する簡略仕様です。 これらの特性は、各設定機能メソッドで個別に変更することもできます。

      通常、最大整数の桁数はパターンから導出されません。 詳細は、Patternsの項のノートを参照してください。 負の数値の場合は、セミコロンで区切った2つめのパターンを使用します。

      "#,#00.0#" → 1,234.56

      これは、最小2桁の整数、1つの小数点、最大2桁の小数を意味します。

      例: "#,#00.0#;(#,#00.0#)" (負の数値は括弧で囲む)。

      負のパターンでは、最小と最大の桁数は無視されます。これらは、正のパターンで設定されるものと見なされます。

      パラメータ:
      pattern - 新しいパターン
      例外:
      NullPointerException - patternがnullである場合
      IllegalArgumentException - 指定されたパターンが無効な場合。
    • setMaximumIntegerDigits

      public void setMaximumIntegerDigits(int newValue)
      数値の整数部分の最大桁数を設定します。 負の入力値は0に置き換えられます。
      オーバーライド:
      setMaximumIntegerDigits、クラスNumberFormat
      パラメータ:
      newValue - 整数の最大表示桁数。0より小さい場合は0が使用される。 具象サブクラスでは、この値の上限を、フォーマットされる数値の種類に適した値に強制できる。
      関連項目:
    • setMinimumIntegerDigits

      public void setMinimumIntegerDigits(int newValue)
      数値の整数部分の最小桁数を設定します。 負の入力値は0に置き換えられます。
      オーバーライド:
      setMinimumIntegerDigits、クラスNumberFormat
      パラメータ:
      newValue - 整数の最小表示桁数。0より小さい場合は0が使用される。 具象サブクラスでは、この値の上限を、フォーマットされる数値の種類に適した値に強制できる。
      関連項目:
    • setMaximumFractionDigits

      public void setMaximumFractionDigits(int newValue)
      数値の小数部分の最大桁数を設定します。 負の入力値は0に置き換えられます。
      オーバーライド:
      setMaximumFractionDigits、クラスNumberFormat
      パラメータ:
      newValue - 小数部の最大表示桁数。0より小さい場合は0が使用される。 具象サブクラスでは、この値の上限を、フォーマットされる数値の種類に適した値に強制できる。
      関連項目:
    • setMinimumFractionDigits

      public void setMinimumFractionDigits(int newValue)
      数値の小数部分の最小桁数を設定します。 負の入力値は0に置き換えられます。
      オーバーライド:
      setMinimumFractionDigits、クラスNumberFormat
      パラメータ:
      newValue - 小数部の最小表示桁数。0より小さい場合は0が使用される。 具象サブクラスでは、この値の上限を、フォーマットされる数値の種類に適した値に強制できる。
      関連項目:
    • getMaximumIntegerDigits

      public int getMaximumIntegerDigits()
      数値の整数部分の最大桁数を取得します。 整数の最大桁数は、setMaximumIntegerDigits(int)またはapplyPattern(String)のいずれかで設定できます。 パターン内の最大整数桁数に関する包括的なルールについては、Pattern Sectionを参照してください。
      オーバーライド:
      getMaximumIntegerDigits、クラスNumberFormat
      戻り値:
      最大桁数
      関連項目:
    • getMinimumIntegerDigits

      public int getMinimumIntegerDigits()
      数値の整数部分の最小桁数を取得します。
      オーバーライド:
      getMinimumIntegerDigits、クラスNumberFormat
      戻り値:
      最小桁数
      関連項目:
    • getMaximumFractionDigits

      public int getMaximumFractionDigits()
      数値の小数部分の最大桁数を取得します。
      オーバーライド:
      getMaximumFractionDigits、クラスNumberFormat
      戻り値:
      最大桁数。
      関連項目:
    • getMinimumFractionDigits

      public int getMinimumFractionDigits()
      数値の小数部分の最小桁数を取得します。
      オーバーライド:
      getMinimumFractionDigits、クラスNumberFormat
      戻り値:
      最小桁数
      関連項目:
    • getCurrency

      public Currency getCurrency()
      通貨値のフォーマット時に、この10進フォーマットが使用する通貨を取得します。 この通貨は、この数値フォーマットの記号に対してDecimalFormatSymbols.getCurrencyを呼び出すことで取得されます。
      オーバーライド:
      getCurrency、クラスNumberFormat
      戻り値:
      この10進フォーマットで使用される通貨、またはnull
      導入されたバージョン:
      1.4
    • setCurrency

      public void setCurrency(Currency currency)
      通貨値のフォーマット時に、この数値フォーマットが使用する通貨を設定します。 これは、数値フォーマットが使用する最小小数桁数または最大小数桁数を更新するものではありません。 この通貨は、この数値フォーマットの記号に対してDecimalFormatSymbols.setCurrencyを呼び出すことで設定されます。
      オーバーライド:
      setCurrency、クラスNumberFormat
      パラメータ:
      currency - この10進フォーマットで使用する新しい通貨
      例外:
      NullPointerException - currencyがnullである場合
      導入されたバージョン:
      1.4
    • getRoundingMode

      public RoundingMode getRoundingMode()
      このDecimalFormatで使用されるRoundingModeを取得します。
      オーバーライド:
      getRoundingMode、クラスNumberFormat
      戻り値:
      このDecimalFormatに使用されるRoundingMode
      導入されたバージョン:
      1.6
      関連項目:
    • setRoundingMode

      public void setRoundingMode(RoundingMode roundingMode)
      このDecimalFormatで使用されるRoundingModeを設定します。
      オーバーライド:
      setRoundingMode、クラスNumberFormat
      パラメータ:
      roundingMode - 使用されるRoundingMode
      例外:
      NullPointerException - roundingModeがnullである場合。
      導入されたバージョン:
      1.6
      関連項目: