บทความนี้แสดงหลายวิธี:
1. ใช้ java.math.BigDecimal
2. ใช้ java.text.DecimalFormat
3. ใช้ java.text.NumberFormat
4. ใช้ java.util.Formatter
5. ใช้ String.format
ในตอนท้ายของบทความฉันแบ่งปันความรู้การขยายตัวมากขึ้นกับคุณ นอกจากนี้คุณสามารถนำไปใช้ด้วยตัวเองหรือยืมไลบรารีคลาสที่ห่อหุ้มเพื่อนำไปใช้ ฉันจะไม่แสดงรายการพวกเขาทีละคนในบทความนี้ มาดูการแนะนำรายละเอียดด้านล่าง
1. ใช้ bigdecimal และรักษาทศนิยมสองตำแหน่ง
รูปแบบสตริงสาธารณะคงที่ 1 (ค่าคู่) {bigDecimal bd = ใหม่ bigDecimal (ค่า); bd = bd.setscale (2, RoundingMode.half_up); return bd.toString ();}2. ใช้ decimalformat เพื่อรักษาทศนิยมสองตำแหน่ง
รูปแบบสตริงสาธารณะคงที่ 2 (ค่าคู่) {DecimalFormat df = ใหม่ decimalformat ("0.00"); df.setRoundingMode (RoundingMode.half_up); ส่งคืน df.format (ค่า);}3. ใช้ NumberFormat เพื่อรักษาทศนิยมสองตำแหน่ง
รูปแบบสตริงสาธารณะคงที่ 3 (ค่าสองเท่า) {numberFormat nf = numberFormat.getNumberInstance (); NF.SetMaximumFractionDigits (2); / * * setMinimumFractionDigits ถึง 2 * * หากคุณไม่ทำเช่นนี้เมื่อค่าของค่าคือ 100.00 ให้ส่งคืน 100 * * แทน 100.00 */ nf.setMinimumFractionDigits (2); nf.setRoundingMode (RoundingMode.half_up); / * * หากรูปแบบที่คุณต้องการแยกออกจากเครื่องหมายจุลภาคคุณสามารถตั้งค่าเป็นจริง */ nf.setGroupingUsed (เท็จ); ส่งคืน nf.format (ค่า);}4. ใช้ java.util.formatter และเก็บทศนิยมสองตำแหน่ง
รูปแบบสตริงคงที่สาธารณะ 4 (ค่าคู่) { / * * % .2f % หมายถึงตัวเลขใด ๆ ก่อนจุดทศนิยม 2 ผลลัพธ์หลังจากสองรูปแบบทศนิยมคือ f ประเภทจุดลอยตัวคือ */ ส่งคืนรูปแบบใหม่ (). รูปแบบ ("%. 2f", ค่า) .tostring ();}5. ใช้ String.format เพื่อใช้งาน
รูปแบบสตริงคงที่สาธารณะ 5 (ค่าคู่) {return string.format ("%. 2f", ค่า) .toString ();}ความรู้ขยาย
ในฐานะเครื่องมือประมวลผลข้อความ String.format ให้ฟังก์ชั่นการจัดรูปแบบสตริงที่ทรงพลังและสมบูรณ์
รูปแบบหมายเลขจุดลอยตัว
รูปแบบตัวยึดคือ: %[ดัชนี $] [การระบุ]*[ความกว้างขั้นต่ำ] [. ความแม่นยำ] ตัวแปลง
double num = 123.4567899; system.out.print (string.format (" %f %n", num)); // 123.456790 System.out.print (string.format (" %a %n", num)); // 0x1.edd3c0bb46929p6 system.out.print (string.format (" %g %n", num)); // 123.457รหัสที่มีอยู่:
-การจัดตำแหน่งซ้ายภายในความกว้างขั้นต่ำไม่สามารถใช้กับเครื่องหมาย 0 ได้
0. หากความยาวของเนื้อหาน้อยกว่าความกว้างขั้นต่ำให้เติมด้วย 0 ทางด้านซ้าย
#เพิ่ม 0 ก่อน ength และ hexadecimal เพิ่ม 0x ก่อน hexadecimal
+ ผลลัพธ์จะมีเครื่องหมาย + หรือ -
พื้นที่เพิ่มพื้นที่ก่อนตัวเลขบวกและเพิ่ม - ลงชื่อเข้าใช้ก่อนตัวเลขเชิงลบ
, ใช้กับทศนิยมแยกกันโดยทุก ๆ 3 หลัก
(หากผลลัพธ์เป็นจำนวนลบให้ห่อเป็นวงเล็บและไม่มีการแสดงสัญลักษณ์
ตัวแปลงที่มีอยู่:
B, ประเภทบูลีนตราบใดที่พารามิเตอร์จริงเป็นประเภทบูลีนที่ไม่ใช่เท็จมันถูกจัดรูปแบบเป็นสตริงจริงมิฉะนั้นจะเป็นสตริงเท็จ
n, อักขระใหม่ที่ไม่ขึ้นกับแพลตฟอร์มสามารถรับได้ผ่าน System.getProperty ("line.separator")
F, ประเภทจุดลอยตัว (ทศนิยม) แสดงตัวเลขที่สำคัญ 9 ตัวและจะถูกปัดเศษ เช่น 99.99
A, ประเภทหมายเลขจุดลอยตัว (เลขฐานสิบหก)
E, ประเภทเอ็กซ์โปเนนเชียล เช่น 9.38E+5
G, ประเภทหมายเลขจุดลอยตัว (สั้นกว่า %F, %A, แสดงตัวเลขที่ถูกต้อง 6 หลักและจะถูกปัดเศษ)
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของวิธีการเขียนหลายวิธีของทศนิยมสองตำแหน่งที่เก็บไว้ในชวา ฉันหวังว่าเนื้อหาของบทความนี้จะช่วยการศึกษาหรือทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร