مختصر
يحتوي نمط DecimalFormat على النماذج الفرعية الإيجابية والسلبية ، مثل "#، ## 0.00 ؛ (#، ## 0.00)":
/*** تم إنشاؤه بواسطة Shuai في 2016/7/11. */الفئة العامة الرئيسية {public static void main (string [] args) {// القيمة الإيجابية BigDecimal BigDecimal = bigDecimal.valueof (-1221115151515151.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،515151.54 . ومن المثير للاهتمام ، بالنسبة لقيم 0 ، سيتم أخذ النمط الإيجابي:
الفئة العامة الرئيسية {public static void main (string [] args) {bigDecimal bigDecimal = bigDecimal.valueof (-0.00) ؛ BigDecimal BigDecimal2 = bigDecimal.valueof (0.00) ؛ نمط السلسلة = "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 ("،،،515،115.26262" ، parseposition (0))) ؛الإخراج:
1515115.26262
كما ترون ، تتم إزالة طريقة decimalformat.parse تلقائيًا . في السابق ، تجدر الإشارة هنا إلى أن الحرف الأول للسلسلة المحلية يجب أن يكون رقمًا ، أو يتبعه رقم ، وإلا سيتم طرح استثناء أو تحليله كخلفي . تحدد المعلمة الثانية من تحليل موضع الحرف الأول الذي يتم تحليله. يتم تحليل جميع الأمثلة أعلاه 0 و 1 و 2 و 3 من 1 و 4 ، 5 كلها محسورة من 5 ، أي ، إذا تم أخذها ، يتم ملء البت بواسطة الرقم المجاور له. إذا كانت هناك أحرف أخرى باستثناء وظهرت الأرقام قبل التحليل ، فإن Parse Parse Parse Parse على الرقم السابق لهذا الحرف ، أو إذا كانت هناك أحرف أخرى باستثناء تظهر الأرقام بعد Pares (بما في ذلك ، ) ثم Pares Parse Parse Parse إلى الرقم السابق لهذه الشخصية.
إذا كان النمط يحتوي على مجموعات متعددة من الأحرف ذات أرقام مختلفة ، على سبيل المثال: "#، ## ، ### ، ####" ، فهو يستخدم المجموعة التالية ، أي ، "#، ## ، ### ، ####" == "#### ، ####" == "##### ، ### ،
الفئة العامة الرئيسية {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 × 10^3 ، والنمط هو "0. ### E0" ، والذي سيشكل 1234 إلى 1.234E3.
عدد الأعداد الصحيحة:
يتم اشتقاق عدد الأرقام المهمة من مجموع العدد الدنيا لأرقام عدد صحيح والحد الأقصى لعدد الأرقام العشرية. على سبيل المثال ، "## 0. ## E0" الحد الأدنى لعدد الأرقام الصحيح هو 1 والحد الأقصى لعدد الأرقام العشرية هو 2 ، ثم الرقم الصحيح هو 3 ، و 12345 المنسق هو "12.3e3". باستثناء الرقم الصحيح ، يتم حذف العناصر الأخرى.
قواعد التقريب العددية
يمكن ضبط RoundingMode من خلال طريقة DecimalFormat.SetRoundingMode. الافتراضي هو RoundingMode.half_even.
إنه خارج المزامنة. إذا تم الوصول إليها من قبل عدة مؤشرات ترابط ، فيجب عليك تنفيذ التزامن بنفسك
يوصى بإنشاء مثيل تنسيق منفصل لكل مؤشر ترابط. إذا تصلت مؤشرات الترابط المتعددة إلى تنسيق في نفس الوقت ، فيجب مزامنة خارجيًا.
مثال
// قم بطباعة رقمًا باستخدام الرقم المترجمة ، عدد صحيح ، عمل ، // ونسبة النسبة المئوية لكل لغة محلية [] keasones = numberformat.getavailablelocales () ؛ double mynumber = -1234.56 ؛ نموذج numberFormat ؛ لـ (int j = 0 ؛ j <4 ؛ ++ j) {system.out.println ("format") ؛ لـ (int i = 0 ؛ i <locales.length ؛ ++ i) {if (standes [i] .getCountry (). length () == 0) {conter ؛ // تخطي لغة اللغة فقط} system.out.print (kops [i] .getDisplayName ()) ؛ Switch (j) {case 0: form = numberformat.getInstance (keasones [i]) ؛ استراحة؛ الحالة 1: form = numberFormat.getIntegerInstance (kops [i]) ؛ استراحة؛ الحالة 2: form = numberFormat.getCurrencyInstance (kops [i]) ؛ استراحة؛ الافتراضي: form = numberFormat.getPercenternstance (standes [i]) ؛ استراحة؛ } if (form form eastyof decimalformat) {system.out.print (":" + (((decimalformat) form) .topattern ()) ؛ } system.out.print (" ->" + form.format (myNumber)) ؛ حاول {system.out.println (" ->" + form.parse (form.format (myNumber))) ؛ } catch (parseException e) {}}}المرجع: العنوان الأصلي
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.