簡単な
小桁のパターンには、「#、## 0.00;(#、## 0.00)」などの正と負のサブパターンが含まれています。
/*** 2016/7/11にShuaiによって作成されました。 */public class main {public static void main(string [] args){//陽性値bigdecimal bigdecimal = bigdecimal.valueof(-122111515151515151.541666); //負の値bigdecimal bigdecimal2 = bigdecimal.valueof(1221115151515151.541666); string pattern = "#、## 0.00;(#、## 0.00)"; DecimalFormat decimalformat = new Decimalformat(パターン); decimalformat.format(bigdecimal); system.out.println(decimalformat.format(bigdecimal)); system.out.print(decimalformat.format(bigdecimal2)); }}出力:
(12,211,151,515,151.54)12,211,151,515,151.54
各サブパターンは、プレフィックス、数値部分、および接尾辞で構成されています。たとえば、上記のポジティブパターンとネガティブパターンには、異なる接頭辞と接尾辞しかありません。数値部分はデフォルトでポジティブなパターンを取得します。つまり、 「#、## 0.0#;(#)」は「#、## 0.0#;(#、## 0.0#)」に相当します。 ;ネガティブパターンはオプションであり、 -12,211,151,515,151.54などのデフォルトの形式(ほとんどの領域でプレフィックスは「 - 」である場合、負の値が表示されない場合があります。興味深いことに、0の値については、正のパターンが取得されます。
public class main {public static void main(string [] args){bigdecimal bigdecimal = bigdecimal.valueof(-0.00); bigdecimal bigdecimal2 = bigdecimal.valueof(0.00); string pattern = "0.00;(0.00)"; DecimalFormat decimalformat = new Decimalformat(パターン); decimalformat.format(bigdecimal); system.out.println(decimalformat.format(bigdecimal)); system.out.print(decimalformat.format(bigdecimal2)); }}出力:
0.000.00
Decimalformatは文字列を直接解析できます:
system.out.print(decimalformat.parse( ",,, 1,515,115.26262"、new Parseposition(0)));
出力:
1515115.26262
ご覧のとおり、DecimalFormat.Parseメソッドが自動的に削除されます。以前は、解析された文字列の最初の文字は数字でなければならないこと、または数字が続く必要があることに注意する必要があります。そうしないと、例外がnullとしてスローまたは解析されます。解析の2番目のパラメーターは、解析される最初の文字の位置を指定します。上記の例の位置0、1、2、3はすべて1から解析され、4、5はすべて5から解析されます。他の文字が他の文字があり、解析の前に数字が表示される場合、この文字の前の数字への解析解析の解析、またはペア( 、を含む)の後に数字を除く他の文字がある場合、この文字の前の数字へのペーシング解析別の解析。
パターンに、たとえば "#、##、###、####"などの異なる数字を持つ文字の複数のグループが含まれている場合、次にグループを使用します。つまり、 "#、##、###、###" == "####、###
public class main {public static void main(string [] args){bigdecimal bigdecimal = bigdecimal.valueof(65652323265.626262); string pattern = "#、##、##、###、### 0.00"; string pattern2 = "#####、### 0.00"; string pattern3 = "##、####、### 0.00"; DecimalFormat decimalformat = new Decimalformat(パターン); system.out.println(decimalformat.format(bigdecimal)); decimalformat.applypattern(pattern2); system.out.println(decimalformat.format(bigdecimal)); decimalformat.applypattern(pattern3); system.out.println(decimalformat.format(bigdecimal)); }}出力:
656,5232,3265.63656,5232,3265.63656,5232,3265.63
特別なパターン文字
科学的カウント方法
1234は1.234 x 10^3として表すことができ、パターンは「0。### e0」で、1234から1.234E3をフォーマットします。
整数の数:
かなりの数の数は、整数桁の最小数と小数桁の最大数の合計から導き出されます。たとえば、 "## 0。## e0"整数桁の最小数は1で、小数桁の最大数は2、有効な数は3、フォーマットされた12345は「12.3e3」です。有効な番号を除き、他のアイテムは省略されています。
数値丸めルール
ラウンドモードは、メソッドdecimalFormat.setRoundingModeを介して設定できます。デフォルトはroundingmode.half_evenです。
同期していません。複数のスレッドでアクセスする場合は、自分で同期を実装する必要があります
スレッドごとに個別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに同時にアクセスする場合、外部で同期する必要があります。
例
//各ロケールロケールのローカライズされた数字、整数、通貨、//、およびパーセント形式を使用して数字を印刷します[] loces = numberformat.getavailablelocales(); double myNumber = -1234.56; Numberformatフォーム; for(int j = 0; j <4; ++ j){system.out.println( "format"); for(int i = 0; i <loceres.length; ++ i){if(loces [i] .getCountry()。length()== 0){continue; // LanguageのみのLocales} System.out.print(loces [i] .getDisplayName()); switch(j){case 0:form = numberformat.getInstance(loces [i]);壊す;ケース1:form = numberformat.getintegerInstance(loces [i]);壊す;ケース2:form = numberformat.getCurrencyInstance(loces [i]);壊す;デフォルト:form = numberformat.getPercentInstance(loces [i]);壊す; } 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){}}}参照:元のアドレス
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。