DecimalFormat クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
DecimalFormat
は、10 進数を書式設定する の NumberFormat
具象サブクラスです。
[Android.Runtime.Register("java/text/DecimalFormat", DoNotGenerateAcw=true)]
public class DecimalFormat : Java.Text.NumberFormat
[<Android.Runtime.Register("java/text/DecimalFormat", DoNotGenerateAcw=true)>]
type DecimalFormat = class
inherit NumberFormat
- 継承
- 属性
注釈
DecimalFormat
は、10 進数を書式設定する の NumberFormat
具象サブクラスです。 これには、西、アラビア語、インド数字のサポートなど、任意のロケールで数値を解析して書式設定できるように設計されたさまざまな機能があります。 また、整数 (123)、固定小数点番号 (123.4)、指数表記 (1.23E4)、パーセンテージ (12%)、通貨金額 ($123) など、さまざまな種類の数値もサポートされています。 これらはすべてローカライズできます。
既定のNumberFormat
ロケールを含む特定のロケールの を取得するには、 などの getInstance()
いずれかのファクトリ メソッドを呼び出しますNumberFormat
。 一般に、ファクトリ メソッドは 以外DecimalFormat
のサブクラスをDecimalFormat
NumberFormat
返す可能性があるため、コンストラクターを直接呼び出さないでください。 書式オブジェクトをカスタマイズする必要がある場合は、次のようにします。
<blockquote>
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}
</blockquote>
は DecimalFormat
em>< パターン</em> と em 記号/em> の<>セットで<構成されます。 パターンは、 を使用して applyPattern()
直接設定することも、API メソッドを使用して間接的に設定することもできます。 シンボルは オブジェクトに DecimalFormatSymbols
格納されます。 ファクトリ メソッドを NumberFormat
使用する場合、パターンとシンボルはローカライズされた ResourceBundle
から読み取られます。
<h2>Patterns</h2>
DecimalFormat
パターンには次の構文があります: <blockquote>
<i>Pattern:</i>
<i>PositivePattern</i>
<i>PositivePattern</i> ; <i>NegativePattern</i>
<i>PositivePattern:</i>
<i>Prefix<sub>opt</sub></i> <i>Number</i> <i>Suffix<sub>opt</sub></i>
<i>NegativePattern:</i>
<i>Prefix<sub>opt</sub></i> <i>Number</i> <i>Suffix<sub>opt</sub></i>
<i>Prefix:</i>
any Unicode characters except \uFFFE, \uFFFF, and special characters
<i>Suffix:</i>
any Unicode characters except \uFFFE, \uFFFF, and special characters
<i>Number:</i>
<i>Integer</i> <i>Exponent<sub>opt</sub></i>
<i>Integer</i> . <i>Fraction</i> <i>Exponent<sub>opt</sub></i>
<i>Integer:</i>
<i>MinimumInteger</i>
#
# <i>Integer</i>
# , <i>Integer</i>
<i>MinimumInteger:</i>
0
0 <i>MinimumInteger</i>
0 , <i>MinimumInteger</i>
<i>Fraction:</i>
<i>MinimumFraction<sub>opt</sub></i> <i>OptionalFraction<sub>opt</sub></i>
<i>MinimumFraction:</i>
0 <i>MinimumFraction<sub>opt</sub></i>
<i>OptionalFraction:</i>
# <i>OptionalFraction<sub>opt</sub></i>
<i>Exponent:</i>
E <i>MinimumExponent</i>
<i>MinimumExponent:</i>
0 <i>MinimumExponent<sub>opt</sub></i>
</blockquote>
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 つの例は、小数点区切り記号とグループ化区切り記号を個別の文字にする必要がある、または解析が不可能になることです。
グループ化区切り記号は、一般的に数千に使用されますが、一部の国では 10,000 を区切ります。 グループ化サイズは、100,000,000 の場合は 3、1,0000,000 の場合は 4 など、グループ化文字間の一定の桁数です。 複数のグループ化文字を持つパターンを指定した場合、最後の文字と整数の末尾の間隔が使用されます。 だから"#,##,###,####"
== == "######,####"
"##,####,####"
.
<h3>"special_pattern_character">特殊文字</h3>
パターン内の多くの文字は、文字通り取られます。これらは解析中に一致し、書式設定中は変更されずに出力されます。 一方、特殊文字は、他の文字、文字列、または文字のクラスを表します。 プレフィックスまたはサフィックスにリテラルとして表示する場合は、特に明記されていない限り、引用符で囲む必要があります。
ここに記載されている文字は、ローカライズされていないパターンで使用されます。 ローカライズされたパターンでは、代わりにこのフォーマッタの DecimalFormatSymbols
オブジェクトから取得された対応する文字が使用され、これらの文字は特殊な状態を失います。 2 つの例外は、ローカライズされていない通貨記号と引用符です。
<blockquote><table class="striped"><キャプション style="display:none">Chart showing symbol, location, localized, and meaning.</キャプション><thead><tr><th scope="col" style="text-align:left">Symbol <th scope="col" style="text-align:left">Location <th scope="col" style="text-align:left">Localized? <th scope="col" style="text-align:left">Meaning </thead><tbody><tr style="vertical-align:top"><th scope="row">0
<td Number <td>Yes <td>>Digit <tr style="vertical-align: top"><th scope="row"><#
td>Number <td Yes <td>>Digit, zero shows as absent <tr style="vertical-align:top"><th scope="row"><.
td Number <td>>はい <td>小数点区切り記号または通貨小数点区切り文字 <tr style="vertical-align: top"><th scope="row"<-
>td>Number <td>Yes <td>負符号 <tr style="vertical-align:top"<>th scope="row",
><td Number <td>Yes <td>>Grouping separator or monetary grouping separator <tr style="vertical-align: top"<>th scope="row"E
><td>数値 <td>Yes <td>仮数と指数を指数表記で区切ります。 <em>プレフィックスまたはサフィックスで引用符で囲む必要はありません。</em>tr style="vertical-align:top"><th scope="row"><;
td>Subpattern boundary <td>Yes td Yes <td>Separates positive and negative subpatterns <tr style="vertical-align: top"><th scope="row"<>%
td>Prefix or suffix <td Td Yes <td>>100 で乗算し、パーセンテージ <tr style="vertical-align:top"><th scope="row"><\u2030
td Prefix or suffixd <td>> として表示します<はい td>1000 を乗算し、ミリ単位の値 <tr style="vertical-align: top"><th scope="row"¤
> (\u00A4
) <td プレフィックスまたはサフィックス <td>>いいえ <td>通貨記号で置き換え、通貨記号で置き換えます。< 2 倍の場合は、国際通貨記号に置き換えられます。 パターンに存在する場合は、小数点区切り記号またはグループ化区切り記号の代わりに通貨の 10 進数/グループ化区切り記号が使用されます。 <tr style="vertical-align:top">th scope="row">'
<td>Prefix or suffix <td No <td>>プレフィックスまたはサフィックスの特殊文字を引用符で囲む場合に使用します 。たとえば、 "'#'#"
123 を に書式設定します"#123"
。< 単一引用符自体を作成するには、行に 2 つを使用します。 "# o''clock"
</tbody></table></blockquote>
<h3>指数表記</h3>
指数表記では、仮数の積と 10 の累乗で表されます。たとえば、1234 は 1.234 x 10^3 と表すことができます。 仮数は、多くの場合、範囲 1.0 &le です。x < 10.0 ですが、 である必要はありません。 DecimalFormat
は、pattern/em> を介してのみ指数表記 <em>を書式設定および解析するように指示できます。現在、科学的表記形式を作成するファクトリ メソッド<はありません。 パターンでは、指数文字の直後に 1 つ以上の数字が続き、指数表記が示されます。 例: "0.###E0"
数値 1234 を として "1.234E3"
書式設定します。
<ul><li>指数文字の後の数字の数は、指数の最小桁数を示します。 最大値はありません。 負の指数は、パターンのプレフィックスとサフィックスではなく、<><>ローカライズされた負符号を使用して書式設定されます。 これにより、 などの "0.###E0 m/s"
パターンが許可されます。
<li>整数の桁数の最小値と最大数は、次の一緒に解釈されます。
<ul><li>整数の最大桁数が最小数より大きく、1 より大きい場合、指数部は整数の最大数の倍数、および整数の最小桁数は 1 として解釈されます。 この最も一般的な用途は、em>エンジニアリング表記</em> を生成<することです。指数は 3 の倍数です (例"##0.#####E0"
: )。 このパターンを使用すると、数値 12345 は に "12.345E3"
、123456形式は に "123.456E3"
設定されます。
<li>それ以外の場合は、指数を調整することによって、整数の最小桁数が実現されます。 例: 0.00123 は、yields "12.3E-4"
で"00.###E0"
書式設定されています。 </ul>
<li>仮数の有効桁数は、em>の最小整数</em> と <em>の最大分数</em> 桁の<合計であり、最大整数桁数の影響を受けません。 たとえば、 で書式設定された "##0.##E0"
12345 は です "12.3E3"
。 すべての数字を表示するには、有効桁数を 0 に設定します。 有効桁数は解析には影響しません。
<li>指数パターンには、グループ化区切り記号を含めないようにすることができます。 </ul>
<h3>丸め</h3>
DecimalFormat
には、書式設定用に で java.math.RoundingMode
定義された丸めモードが用意されています。 既定では、java.math.RoundingMode#HALF_EVEN RoundingMode.HALF_EVEN
が使用されます。
<h3>Digits</h3>
書式設定では、 DecimalFormat
オブジェクトで定義されているローカライズされた 0 桁から始まる 10 文字の連続する文字を DecimalFormatSymbols
数字として使用します。 解析の場合、これらの数字と、 で Character#digit Character.digit
定義されているすべての Unicode 10 進数が認識されます。
<h4>特殊値</h4>
NaN
は文字列として書式設定され、通常は 1 文字 \uFFFD
です。 この文字列は、 オブジェクトによって DecimalFormatSymbols
決定されます。 プレフィックスとサフィックスが使用されない唯一の値です。
Infinity は文字列として書式設定され、通常は 1 文字 \u221E
で、正または負のプレフィックスとサフィックスが適用されます。 無限大文字列は、 オブジェクトによって DecimalFormatSymbols
決定されます。
負のゼロ ("-0"
) は、 が true の場合isParseBigDecimal()
は ul><li>BigDecimal(0)
に<解析されisParseIntegerOnly()
、 <が false の場合isParseBigDecimal()
は liLong(0)
>、<両方が false の場合isParseBigDecimal()
isParseIntegerOnly()
は li>Double(-0.0)
に解析されます。 </ul>
<h3>"synchronization">Synchronization</h3>
通常、10 進形式は同期されません。 スレッドごとに個別のフォーマット インスタンスを作成することをお勧めします。 複数のスレッドが同時に形式にアクセスする場合は、外部で同期する必要があります。
<h3>Example</h3>
<blockquote>
<strong>{@code
// Print out a number using the localized number, integer, currency,
// and percent format for each locale}</strong>{@code
Locale[] locales = NumberFormat.getAvailableLocales();
double myNumber = -1234.56;
NumberFormat form;
for (int j = 0; j < 4; ++j) {
System.out.println("FORMAT");
for (int i = 0; i < locales.length; ++i) {
if (locales[i].getCountry().length() == 0) {
continue; // Skip language-only locales
}
System.out.print(locales[i].getDisplayName());
switch (j) {
case 0:
form = NumberFormat.getInstance(locales[i]); break;
case 1:
form = NumberFormat.getIntegerInstance(locales[i]); break;
case 2:
form = NumberFormat.getCurrencyInstance(locales[i]); break;
default:
form = NumberFormat.getPercentInstance(locales[i]); break;
}
if (form instanceof DecimalFormat) {
System.out.print(": " + ((DecimalFormat) form).toPattern());
}
System.out.print(" -> " + form.format(myNumber));
try {
System.out.println(" -> " + form.parse(form.format(myNumber)));
} catch (ParseException e) {}
}
}
}
</blockquote>
1.1 で追加されました。
の Java ドキュメント java.text.DecimalFormat
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
DecimalFormat() |
既定のロケールの既定のパターンと記号を使用して DecimalFormat を作成します |
DecimalFormat(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
DecimalFormat(String) |
指定されたパターンと既定のロケールのシンボルを使用して DecimalFormat を作成します |
DecimalFormat(String, DecimalFormatSymbols) |
指定したパターンと記号を使用して DecimalFormat を作成します。 |
フィールド
FractionField |
FieldPosition オブジェクトの構築に使用される Field 定数。 (継承元 NumberFormat) |
IntegerField |
FieldPosition オブジェクトの構築に使用される Field 定数。 (継承元 NumberFormat) |
プロパティ
Class |
この |
Currency |
通貨値を書式設定するときに、この数値形式で使用される通貨を取得します。 または、通貨値を書式設定するときに、この数値形式で使用される通貨を設定します。 (継承元 NumberFormat) |
DecimalFormatSymbols |
10 進書式記号のコピーを返します。これは通常、プログラマやユーザーによって変更されません。 または、プログラマまたはユーザーによって通常変更されない 10 進数の書式記号を設定します。 |
DecimalSeparatorAlwaysShown |
整数を使用して小数点区切り記号の動作を取得できます。 または、小数点区切り記号の動作を整数で設定できます。 |
GroupingSize |
グループ化サイズを返します。 または、グループ化サイズを設定します。 |
GroupingUsed |
この形式でグループ化が使用されている場合は true を返します。 または、 グループ化をこの形式で使用するかどうかを設定します。 (継承元 NumberFormat) |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
|
JniPeerMembers |
|
MaximumFractionDigits |
数値の分数部分で許容される最大桁数を返します。 または、数値の分数部分で許容される最大桁数を設定します。 (継承元 NumberFormat) |
MaximumIntegerDigits |
数値の整数部分で許容される最大桁数を返します。 または、数値の整数部分で許容される最大桁数を設定します。 (継承元 NumberFormat) |
MinimumFractionDigits |
数値の分数部分で許容される最小桁数を返します。 または、数値の分数部分で許容される最小桁数を設定します。 (継承元 NumberFormat) |
MinimumIntegerDigits |
数値の整数部分で許容される最小桁数を返します。 または、数値の整数部分で許容される最小桁数を設定します。 (継承元 NumberFormat) |
Multiplier |
パーセント、ミル単位、および同様の形式で使用する乗数を取得します。 または、パーセント、ミル単位、および同様の形式で使用する乗数を設定します。 |
NegativePrefix |
負のプレフィックスを取得します。 または、負のプレフィックスを設定します。 |
NegativeSuffix |
負のサフィックスを取得します。 または、負のサフィックスを設定します。 |
ParseBigDecimal |
メソッドが を |
ParseIntegerOnly |
この形式で数値を整数として解析する場合は true を返します。 または、数値を整数としてのみ解析するかどうかを設定します。 (継承元 NumberFormat) |
PeerReference |
|
PositivePrefix |
正のプレフィックスを取得します。 または、正のプレフィックスを設定します。 |
PositiveSuffix |
正のサフィックスを取得します。 または、正のサフィックスを設定します。 |
RoundingMode |
この NumberFormat で使用される を |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
メソッド
ApplyLocalizedPattern(String) |
指定したパターンをこの Format オブジェクトに適用します。 |
ApplyPattern(String) |
指定したパターンをこの Format オブジェクトに適用します。 |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 _Format) |
Dispose() |
|
Dispose(Boolean) |
|
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
Format(Double) |
形式の特殊化。 (継承元 NumberFormat) |
Format(Double, StringBuffer, FieldPosition) |
文字列を生成するために double を書式設定します。 |
Format(Int64) |
形式の特殊化。 (継承元 NumberFormat) |
Format(Int64, StringBuffer, FieldPosition) |
長整数型 (long) の書式を設定して文字列を生成します。 |
Format(Object) |
文字列を生成するオブジェクトの書式を設定します。 (継承元 _Format) |
Format(Object, StringBuffer, FieldPosition) |
数値を書式設定し、結果のテキストを指定された文字列バッファーに追加します。 |
FormatToCharacterIterator(Object) |
を生成するオブジェクトを |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
Parse(String) |
指定された文字列の先頭からテキストを解析して、数値を生成します。 (継承元 NumberFormat) |
Parse(String, ParsePosition) |
文字列からテキストを解析して を |
ParseObject(String) |
指定された文字列の先頭からテキストを解析して、 オブジェクトを生成します。 (継承元 _Format) |
ParseObject(String, ParsePosition) |
文字列からテキストを解析して を |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
ToArray<T>() |
|
ToLocalizedPattern() |
この Format オブジェクトの現在の状態を表すローカライズされたパターン文字列を合成します。 |
ToPattern() |
この Format オブジェクトの現在の状態を表すパターン文字列を合成します。 |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
|
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
|
IJavaPeerable.DisposeUnlessReferenced() |
|
IJavaPeerable.Finalized() |
|
IJavaPeerable.JniManagedPeerState |
|
IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
IJavaPeerable.SetPeerReference(JniObjectReference) |
|
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|