DecimalFormat เป็นคลาสย่อยคอนกรีตของ NumberFormat ซึ่งใช้ในการจัดรูปแบบตัวเลขทศนิยม มันสามารถรองรับการแปลตัวเลขประเภทต่าง ๆ รวมถึงจำนวนเต็ม (123), ตัวเลขจุดคงที่ (123.4), ตัวเลขที่เป็นตัวแทนของสัญลักษณ์ทางวิทยาศาสตร์ (1.23E4), เปอร์เซ็นต์ (12%) และจำนวน ($ 123)
ก่อนอื่นแนะนำการใช้ decimalformat:
นำเข้า Java.Text.*; นำเข้า Java.util.*; ชั้นเรียนสาธารณะ DecimalFormatDemo {โมฆะคงที่สาธารณะหลัก (สตริง args []) {decimalformat df1 = ใหม่ decimalformat ("###, ###. 0000"); // ใช้รูปแบบของระบบค่าเริ่มต้นของระบบ locale.setDefault (locale.us); DecimalFormat DF2 = ใหม่ DecimalFormat ("##, ###. 0000"); // ใช้รูปแบบของสหรัฐอเมริกา System.out.println (df2.format (1111111123456.12)); - - - (DecimalFormat) NumberFormat.getPercentinstance (); } catch (classcastexception e) {<span style = "space สีขาว: pre"> </span> system.err.println (e); } df5.applyPattern ("00.0000%"); System.out.println (df5.format (0.34567)); System.out.println (df5.format (1.34567)); - (1) สำหรับการปัดเศษของข้อมูล:
DecimalFormat มีชุดของสัญลักษณ์และความหมายของสัญลักษณ์แต่ละอันมีการอธิบายดังนี้:
0 หมายเลข
# ตัวเลขไม่รวม 0
- ตัวยึดตำแหน่งสำหรับตัวแยกทศนิยม
ตัวยึดตำแหน่งสำหรับตัวคั่นกลุ่ม
- รูปแบบที่คั่น
- คำนำหน้าลบเริ่มต้น
% คูณด้วย 100 และแสดงเป็นเปอร์เซ็นต์
- ทวีคูณด้วย 1,000 และแสดงเป็นกิโลกรัม แทนที่ด้วยสัญลักษณ์สกุลเงิน หากเขียนสองครั้งให้แทนที่ด้วยสัญลักษณ์สกุลเงินระหว่างประเทศ หากปรากฏในรูปแบบให้ใช้ตัวคั่นทศนิยมสกุลเงินแทนตัวคั่นทศนิยม
คำนำหน้า x หรืออักขระอื่น ๆ ที่ใช้ในคำต่อท้ายเพื่ออ้างถึงอักขระพิเศษในคำนำหน้าหรือคำต่อท้าย
ตัวอย่างเช่น:
DecimalFormat DF1 = decimalformat ใหม่ ("### 0.00"); // รักษาตำแหน่งทศนิยมสองตำแหน่งและหากมีทศนิยมน้อยกว่าสองตำแหน่งศูนย์จะได้รับการเสริม System.out.println โดยอัตโนมัติ (df1.format (124.367)); System.out.println (df1.format (124.3)); DecimalFormat df2 = decimalformat ใหม่ ("### 0 0. ##"); // รักษาตำแหน่งทศนิยมสองตำแหน่งและหากมีทศนิยมน้อยกว่าสองตำแหน่งศูนย์จะได้รับการเสริม System.out.println (DF2.Format (124.6)); System.out.println (df2.format (124)); DecimalFormat DF3 = decimalformat ใหม่ ("000.000"); // รักษาทศนิยมสามตำแหน่งไว้และแต่งหน้าเป็นศูนย์ซึ่งมีระบบหลักไม่เพียงพอ. println (df3.format (24)) DecimalFormat DF = decimalformat ใหม่ ("0.000E0000"); // exponent system.out.println (df.format (1234.56)); DecimalFormat nf = (decimalformat) numberFormat.getPercentinstance (); //percentsystem.out.println(nf.format(0.476354)); nf.applypattern ("00.00%"); System.out.println (nf.format (0.476354)); ผลการทำงาน:
124.37 124.30 124.6 124 024.000 1.235E0003 48% 47.64%
(2) สำหรับการอ่านและการแยกวิเคราะห์สตริงที่มีตัวเลขที่จัดรูปแบบ? การสนับสนุนความละเอียดรวมอยู่ใน numberFormat ตัวอย่างเช่น:
นำเข้า java.util.locale; นำเข้า Java.Text.NumberFormat; นำเข้า java.text.parseException; ระดับสาธารณะ DecimalFormat5 {โมฆะคงที่สาธารณะหลัก (สตริง args []) {// รูปแบบท้องถิ่น numberFormat nf1 = numberFormat.getInstance (); วัตถุ obj1 = null; // การแยกวิเคราะห์ตามรูปแบบลอง {obj1 = nf1.parse ("1234,56"); } catch (parseexception e1) {system.err.println (e1); } system.out.println (obj1); // รูปแบบภาษาเยอรมัน NumberFormat NF2 = numberFormat.getInstance (locale.german); วัตถุ obj2 = null; // การแยกวิเคราะห์ตามรูปแบบลอง {obj2 = nf2.parse ("1234,56"); } catch (parseexception e2) {system.err.println (e2); } system.out.println (obj2); - ผลการทำงาน:
123456 // การดำเนินงานในสหรัฐอเมริกา; ถือว่าสตริง 1234.56 // การดำเนินงานในประเทศเยอรมนี; ถือว่าเป็นทศนิยม
(3) สำหรับ DecimalFormat และ NumberFormat:
DecimalFormat เป็นคลาสย่อยของ numberFormat อินสแตนซ์ของมันถูกระบุเป็นภูมิภาคเฉพาะ ดังนั้นคุณสามารถระบุภูมิภาคโดยใช้ numberFormat.getInstance แล้วหล่อโครงสร้างไปยังวัตถุ DecimalFormat เอกสารระบุว่าเทคนิคนี้สามารถนำไปใช้ในกรณีส่วนใหญ่ แต่คุณต้องใช้บล็อกลอง/จับเพื่อล้อมรอบนักแสดงในกรณีที่การแปลงไม่ทำงานอย่างถูกต้อง (น่าจะใช้พื้นที่แปลก ๆ ในสถานการณ์ที่ไม่น่ารำคาญมาก)
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น