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 を取得するには、 NumberFormatのファクトリ メソッド ( getInstance() など) のいずれかを呼び出します。 一般に、DecimalFormat ファクトリ メソッドはNumberFormat以外のサブクラスを返す可能性があるため、DecimalFormat コンストラクターを直接呼び出さないでください。 書式オブジェクトをカスタマイズする必要がある場合は、次のようにします。
<blockquote>
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}
</blockquote>
DecimalFormatは、<em>pattern</em>と<em>symbols</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 つの例は、小数点区切り記号とグループ化区切り記号を個別の文字にする必要がある、または解析できない場合です。
グループ化区切り記号は、一般的に数千に使用されますが、一部の国では 1 万分の 1 を区切ります。 グループ化サイズは、グループ化文字間の一定の桁数です (100,000,000 の場合は 3、1,0000,000 の場合は 4 など)。 複数のグループ化文字を持つパターンを指定した場合、整数の最後の 1 つから末尾までの間隔が使用されます。 だから "#,##,###,####" == "######,####" == "##,####,####"。
<h3>"special_pattern_character">パターン文字</h3>
パターン内の多くの文字は、文字どおり取得されます。これらは解析中に照合され、出力は書式設定中に変更されません。 一方、特殊文字は、他の文字、文字列、または文字のクラスを表します。 特に明記されていない限り、プレフィックスまたはサフィックスにリテラルとして表示される場合は、引用符で囲む必要があります。
ここに示す文字は、ローカライズされていないパターンで使用されます。 ローカライズされたパターンでは、代わりにこのフォーマッタの DecimalFormatSymbols オブジェクトから取得された対応する文字が使用され、これらの文字は特殊な状態を失います。 2 つの例外は、ローカライズされていない通貨記号と引用符です。
<blockquote><table class="striped"><caption style="display:none">シンボル、場所、ローカライズ、および意味を示すグラフ</caption><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><td>Digit <tr style="vertical-align: top"><th scope="row">#<td>Number <td>Yes <td>Digit, zero は、存在しない <tr style="vertical-align:top"><th scope="row">.<td>Number <td と表示されます>Yes <td>decimal separator or monetary decimal separator <tr style="vertical-align: top"><th scope="row">-<td>Number <td>Yes <td>Minus sign <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>separates positive and negative subpatterns <tr style="vertical-align: top"><th scope="row" >%<td>prefix またはサフィックス <td>Yes <td>multiply by 100 and show as percentage <tr style="vertical-align:top"><th scope="row">\u2030<td>Prefix or suffix <td>はい <td>1000 で乗算され、1000 単位の値として表示 <tr style="vertical-align: top"><th scope="row">¤ (\u00A4) <td>Prefix またはサフィックス <td><通貨記号に置き換え>通貨記号に置き換えられます。 2 倍の場合は、国際通貨記号に置き換えられます。 パターンに存在する場合は、小数点/グループ化区切り記号の代わりに通貨の小数点/グループ化区切り記号が使用されます。
<tr style="vertical-align:top"><th scope="row">'<td>prefix または suffix <td>プレフィックスまたはサフィックスの特殊文字を引用符で囲むには使用<プレフィックスまたはサフィックスの特殊文字を引用符で囲 >むには使用"'#'#" 123 から"#123"。 単一引用符自体を作成するには、行に 2 つ ( "# o''clock") を使用します。
</tbody></table></blockquote>
<h3>Scientific Notation</h3>
指数表記の数値は仮数の積として表され、10 の累乗として表されます。たとえば、1234 は 1.234 x 10^3 として表すことができます。 仮数は、多くの場合、範囲 1.0 > です。x < 10.0 ですが、10.0 である必要はありません。
DecimalFormat は、 <em>パターン</em>を使用して科学的表記法を書式設定および解析するように指示できます。現在のところ、科学的表記形式を作成するファクトリ メソッドはありません。 パターンでは、指数文字の直後に 1 つ以上の数字が続く文字は、科学的表記を示します。 例: "0.###E0" 数値 1234 を "1.234E3"として書式設定します。
<ul><li>指数文字の後の数字の数は、最小指数桁数を示します。 最大値はありません。 負の指数は、パターンのプレフィックスとサフィックス<ローカライズされた負符号 (>em<not>/em) を使用して書式設定されます。 これにより、 "0.###E0 m/s"などのパターンが可能になります。
<li>整数の最小桁数と最大桁数は、次の形式で解釈されます。
<ul><li>整数の最大桁数が最小数より大きく、1 より大きい場合、指数は整数の最大桁数の倍数になり、整数の最小桁数は 1 と解釈されます。 この最も一般的な用途は、 <em>engineering notation</em> を生成することです。指数は 3 の倍数 (例: "##0.#####E0") です。 このパターンを使用して、 "12.345E3"する 12345 形式の数値を指定し、 "123.456E3"する形式を123456します。
<li>それ以外の場合は、指数を調整することによって、整数の最小桁数が達成されます。 例: "00.###E0" で書式設定された 0.00123 では、 "12.3E-4"が生成されます。
</ul>
<li>仮数の有効桁数は、 <em>minimum 整数</em> および <em>maximum 分数</em> 桁の合計であり、最大整数桁の影響を受けません。 たとえば、 "##0.##E0" で書式設定された 12345 は "12.3E3"。 すべての数字を表示するには、有効桁数を 0 に設定します。 有効桁数は解析に影響しません。
<li>Exponential パターンには、グループ化区切り記号が含まれていない場合があります。 </ul>
<h3>Rounding</h3>
DecimalFormat には、書式設定のために java.math.RoundingMode で定義された丸めモードが用意されています。 既定では、 java.math.RoundingMode#HALF_EVEN RoundingMode.HALF_EVENが使用されます。
<h3>Digits</h3>
書式設定では、 DecimalFormat は、 DecimalFormatSymbols オブジェクトで定義されたローカライズされた 0 桁から始まる 10 個の連続する文字を数字として使用します。 解析の場合、これらの数字と、 Character#digit Character.digitで定義されているすべての Unicode 10 進数が認識されます。
<h4>値</h4>
NaN は文字列として書式設定され、通常は 1 文字の \uFFFD。 この文字列は、 DecimalFormatSymbols オブジェクトによって決定されます。 プレフィックスとサフィックスが使用されない唯一の値です。
Infinity は文字列として書式設定され、通常は 1 文字の \u221Eで、正または負のプレフィックスとサフィックスが適用されます。 無限大文字列は、 DecimalFormatSymbols オブジェクトによって決定されます。
負のゼロ ("-0") は、<が true の場合は><>ulBigDecimal(0)isParseBigDecimal()liに解析され、<が false で>が true の場合は Long(0)liisParseBigDecimal()isParseIntegerOnly()、<と>の両方が false の場合はDouble(-0.0)liisParseBigDecimal()isParseIntegerOnly()。
</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 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| DecimalFormat() |
既定の |
| DecimalFormat(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
| DecimalFormat(String, DecimalFormatSymbols) |
指定されたパターンと記号を使用して DecimalFormat を作成します。 |
| DecimalFormat(String) |
指定されたパターンと既定の |
フィールド
| 名前 | 説明 |
|---|---|
| FractionField |
FieldPosition オブジェクトの構築に使用される Field 定数。 (継承元 NumberFormat) |
| IntegerField |
FieldPosition オブジェクトの構築に使用される Field 定数。 (継承元 NumberFormat) |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Currency |
通貨値を書式設定するときに、この数値形式で使用される通貨を取得します。 または、通貨値を書式設定するときに、この数値書式で使用される通貨を設定します。 (継承元 NumberFormat) |
| DecimalFormatSymbols |
10 進書式記号のコピーを返します。これは通常、プログラマまたはユーザーによって変更されません。 または、プログラマまたはユーザーによって通常変更されない 10 進書式記号を設定します。 |
| DecimalSeparatorAlwaysShown |
整数を使用して小数点区切り記号の動作を取得できます。 または、小数点区切り記号の動作を整数で設定できます。 |
| GroupingSize |
グループ化サイズを返します。 または、グループ化のサイズを設定します。 |
| GroupingUsed |
グループ化がこの形式で使用されている場合は true を返します。 または、グループ化をこの形式で使用するかどうかを設定します。 (継承元 NumberFormat) |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| MaximumFractionDigits |
数値の分数部分で許容される最大桁数を返します。 または、数値の分数部分で許容される最大桁数を設定します。 (継承元 NumberFormat) |
| MaximumIntegerDigits |
数値の整数部分で許容される最大桁数を返します。 または、数値の整数部分で許容される最大桁数を設定します。 (継承元 NumberFormat) |
| MinimumFractionDigits |
数値の分数部分で許容される最小桁数を返します。 または、数値の分数部分で許容される最小桁数を設定します。 (継承元 NumberFormat) |
| MinimumIntegerDigits |
数値の整数部分で許容される最小桁数を返します。 または、数値の整数部分で許容される最小桁数を設定します。 (継承元 NumberFormat) |
| Multiplier |
パーセント、ミル単位、および同様の形式で使用する乗数を取得します。 または、パーセント、ミル単位、および同様の形式で使用する乗数を設定します。 |
| NegativePrefix |
負のプレフィックスを取得します。 または、負のプレフィックスを設定します。 |
| NegativeSuffix |
負のサフィックスを取得します。 または、負のサフィックスを設定します。 |
| ParseBigDecimal |
|
| ParseIntegerOnly |
この形式で数値を整数としてのみ解析する場合は true を返します。 または、数値を整数としてのみ解析するかどうかを設定します。 (継承元 NumberFormat) |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| PositivePrefix |
正のプレフィックスを取得します。 または、正のプレフィックスを設定します。 |
| PositiveSuffix |
正のサフィックスを取得します。 または、正のサフィックスを設定します。 |
| RoundingMode |
この NumberFormat で使用される |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| ApplyLocalizedPattern(String) |
この Format オブジェクトに指定されたパターンを適用します。 |
| ApplyPattern(String) |
この Format オブジェクトに指定されたパターンを適用します。 |
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| Format(Double, StringBuffer, FieldPosition) |
文字列を生成する倍精度浮動小数点型 (double) の書式を設定します。 |
| Format(Double) |
形式の特殊化。 (継承元 NumberFormat) |
| Format(Int64, StringBuffer, FieldPosition) |
長い文字列を生成する書式を設定します。 |
| Format(Int64) |
形式の特殊化。 (継承元 NumberFormat) |
| Format(Object, StringBuffer, FieldPosition) |
数値を書式設定し、結果のテキストを指定された文字列バッファーに追加します。 |
| Format(Object) |
文字列を生成するオブジェクトを書式設定します。 (継承元 _Format) |
| FormatToCharacterIterator(Object) |
|
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| Parse(String, ParsePosition) |
文字列からテキストを解析して、 |
| Parse(String) |
指定した文字列の先頭からテキストを解析して、数値を生成します。 (継承元 NumberFormat) |
| ParseObject(String, ParsePosition) |
文字列からテキストを解析して、 |
| ParseObject(String) |
指定された文字列の先頭からテキストを解析して、オブジェクトを生成します。 (継承元 _Format) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToLocalizedPattern() |
この Format オブジェクトの現在の状態を表すローカライズされたパターン文字列を合成します。 |
| ToPattern() |
この Format オブジェクトの現在の状態を表すパターン文字列を合成します。 |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|