1. รหัส:
นำเข้า java.math.bigdecimal; นำเข้า java.text.decimalformat; นำเข้า java.text.numberformat; รูปแบบคลาสสาธารณะ {double f = 111231.5585; โมฆะสาธารณะ m1 () {bigdecimal bg = ใหม่ bigdecimal (f); double f1 = bg.setscale (2, bigdecimal.round_half_up) .doublevalue (); System.out.println (F1); } / *** การแปลงที่สะดวกที่สุดของ decimalformat* / โมฆะสาธารณะ m2 () {decimalformat df = decimalformat ใหม่ ("#. 00"); System.out.println (df.format (f)); } / *** การพิมพ์ที่ง่ายที่สุดของ string.format* / โมฆะสาธารณะ m3 () {system.out.println (string.format ("%. 2f", f)); } โมฆะสาธารณะ m4 () {numberFormat nf = numberFormat.getNumberInstance (); NF.SetMaximumFractionDigits (2); System.out.println (nf.format (f)); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {รูปแบบ f = รูปแบบใหม่ (); F.M1 (); F.M2 (); F.M3 (); F.M4 (); -2. ผลลัพธ์ผลลัพธ์:
111231.56
111231.56
111231.56
111,231.56
ที่นี่เรามีคลาสเครื่องมือที่กำหนดวิธีการทำงานเช่นการเพิ่มการลบการคูณการหารและการปัดเศษของหมายเลขลอย สำหรับการอ้างอิง
ไฟล์แหล่งที่มา mathextend.java:
นำเข้า java.math.bigdecimal; คลาสสาธารณะ Mathextend {// การแบ่งส่วนเริ่มต้นความแม่นยำส่วนตัวคงที่ int final default_div_scale = 10; /*** ให้การดำเนินการเพิ่มเติมที่ถูกต้อง * @param v1 * @param v2 * @กลับมารวมกันของพารามิเตอร์สองพารามิเตอร์ */ public Static double add (double v1, double v2) {bigdecimal b1 = ใหม่ bigdecimal (double.tostring (v1)); bigdecimal b2 = ใหม่ bigdecimal (double.tostring (v2)); ส่งคืน b1.add (b2) .doublevalue (); } / ** * ให้การดำเนินการเพิ่มเติมที่ถูกต้อง * @param v1 * @param v2 * @return ผลรวมทางคณิตศาสตร์ของพารามิเตอร์สองตัวกลับมาในรูปแบบสตริง * / สตริงคงที่สาธารณะ bigdecimal b2 = ใหม่ bigdecimal (v2); ส่งคืน b1.add (b2) .tostring (); } /*** ให้การดำเนินการลบที่แม่นยำ * @param v1 * @param v2 * @return ความแตกต่างระหว่างพารามิเตอร์สองตัว */ การลบแบบสแตติกแบบคงที่สาธารณะ (คู่ V1, คู่ V2) {bigdecimal b1 = ใหม่ bigdecimal (double.toString (v1)); bigdecimal b2 = ใหม่ bigdecimal (double.tostring (v2)); ส่งคืน b1.subtract (b2) .doublevalue (); } / ** * ให้การดำเนินการลบที่ถูกต้อง * @param v1 * @param v2 * @return ความแตกต่างทางคณิตศาสตร์ระหว่างพารามิเตอร์สองตัวส่งคืนในรูปแบบสตริง * / การลบสตริงคงที่สาธารณะ (สตริง V1, สตริง V2) bigdecimal b2 = ใหม่ bigdecimal (v2); ส่งคืน b1.subtract (b2) .tostring (); } /*** ให้การคูณการคูณที่แม่นยำ * @param v1 * @param v2 * @return ผลิตภัณฑ์ของพารามิเตอร์สองตัว */ สาธารณะคงที่ทวีคูณ (คู่ V1, double v2) {bigdecimal b1 = ใหม่ bigdecimal (double.toString (v1)); bigdecimal b2 = ใหม่ bigdecimal (double.tostring (v2)); ส่งคืน b1.multiply (b2) .doublevalue (); } / ** * ให้การคูณการคูณที่แม่นยำ * @param v1 * @param v2 * @@return ผลิตภัณฑ์ทางคณิตศาสตร์ของพารามิเตอร์สองพารามิเตอร์ส่งคืนในรูปแบบสตริง * / สตริงคงที่สาธารณะทวีคูณ (สตริง V1, สตริง V2) bigdecimal b2 = ใหม่ bigdecimal (v2); ส่งคืน b1.multiply (b2) .tostring (); } /*** ให้ (ค่อนข้าง) การทำงานของการแบ่งที่แม่นยำ เมื่อไม่มีสถานการณ์ของการหารมันจะถูกต้องถึง * 10 หลักหลังจากจุดทศนิยมและตัวเลขที่ตามมาจะถูกปัดเศษและโหมดการปัดเศษจะใช้ Round_half_even * @param v1 * @param v2 * @return ความฉลาดของพารามิเตอร์สองพารามิเตอร์ */ สาธารณะ } /*** ให้ (ค่อนข้าง) การทำงานของการแบ่งที่แม่นยำ เมื่อไม่มีที่สิ้นสุดที่จะทำให้สถานการณ์เสร็จสมบูรณ์พารามิเตอร์สเกลหมายถึงความถูกต้องของ *และตัวเลขที่ตามมาจะถูกปัดเศษ โหมดการปัดเศษใช้ round_half_even * @param v1 * @param v2 * @param scale เพื่อระบุว่าจำเป็นต้องแม่นยำสำหรับทศนิยมหลายตำแหน่ง * @return Quotient ของพารามิเตอร์สองตัว*/ การหารสองครั้งแบบคงที่สาธารณะ (คู่ V1, Double V2, สเกล int) {return divide (v1, v2, scale, bigdecimal.round_half_even); } /*** ให้ (ค่อนข้าง) การทำงานของการแบ่งที่แม่นยำ เมื่อไม่มีที่สิ้นสุดที่จะทำให้สถานการณ์เสร็จสมบูรณ์พารามิเตอร์สเกลหมายถึงความถูกต้องของ *และตัวเลขที่ตามมาจะถูกปัดเศษ โหมดการปัดเศษใช้โหมดการปัดเศษที่ผู้ใช้ระบุ* @param v1* @param v2* @param สเกลหมายความว่าคุณต้องแม่นยำกับตัวเลขหลายหลักหลังจากจุดทศนิยม* @param round_mode หมายถึงโหมดการปัดเศษที่ผู้ใช้ orderalargumentException ("สเกลจะต้องเป็นจำนวนเต็มบวกหรือศูนย์"); } bigdecimal b1 = ใหม่ bigdecimal (double.toString (v1)); bigdecimal b2 = ใหม่ bigdecimal (double.tostring (v2)); ส่งคืน b1.divide (b2, scale, round_mode) .doublevalue (); } / ** * ให้ (ค่อนข้าง) การทำงานของการแบ่งที่แม่นยำเมื่อมีการแบ่งที่ไม่มีที่สิ้นสุดมันจะถูกต้องถึง * 10 หลักหลังจากจุดทศนิยมและตัวเลขที่ตามมาจะถูกปัดเศษและโหมดการปัดเศษใช้ Round_half_even * @param v1 * @param v2 * @return หาร (v1, v2, default_div_scale); } /*** ให้ (ค่อนข้าง) การดำเนินงานที่ถูกต้อง เมื่อไม่มีที่สิ้นสุดที่จะทำให้สถานการณ์เสร็จสมบูรณ์พารามิเตอร์สเกลหมายถึงความถูกต้องของ *และตัวเลขที่ตามมาจะถูกปัดเศษ โหมดการปัดเศษใช้ round_half_even * @param v1 * @param v2 * @param สเกลแสดงถึงความฉลาดของพารามิเตอร์ทั้งสองที่ต้องแม่นยำกับจุดทศนิยม * @return ความฉลาดของพารามิเตอร์ทั้งสอง bigdecimal.round_half_even); } /*** ให้ (ค่อนข้าง) การทำงานของการแบ่งที่แม่นยำ เมื่อไม่มีที่สิ้นสุดที่จะทำให้สถานการณ์เสร็จสมบูรณ์พารามิเตอร์สเกลหมายถึงความถูกต้องของ *และตัวเลขที่ตามมาจะถูกปัดเศษ โหมดการปัดเศษใช้โหมดการปัดเศษที่ผู้ใช้ระบุ * @param v1 * @param v2 * @param มาตราส่วนหมายความว่าจำนวนตัวเลขหลังจากจุดทศนิยมจะต้องแม่นยำไปยังจุดทศนิยม * @param round_mode หมายถึงโหมดการปัดเศษที่ผู้ใช้ {ถ้า (มาตราส่วน <0) {โยน ungloralargumentException ใหม่ ("มาตราส่วนจะต้องเป็นจำนวนเต็มบวกหรือศูนย์"); } bigdecimal b1 = ใหม่ bigdecimal (v1); bigdecimal b2 = ใหม่ bigdecimal (v2); ส่งคืน b1.divide (b2, scale, round_mode) .tostring (); } / *** ให้การปัดเศษของทศนิยมที่แม่นยำและโหมดการปัดเศษใช้ round_half_even* @param v หมายเลขที่ต้องโค้งมน* @param มาตราส่วนหลายหลักเก็บไว้หลังจากที่ทศนิยม* @return ผลลัพธ์หลังจากการปัดเศษ* / สาธารณะ } / ** * ให้การปัดเศษของทศนิยมที่แม่นยำ * @param v หมายเลขที่ต้องโค้งมน * @param ขนาดจำนวนตัวเลขจะถูกเก็บไว้หลังจากจุดทศนิยม * @param round_mode โหมดการปัดเศษที่ระบุ * @return ผลลัพธ์หลังจากการปัดเศษ หรือศูนย์ "); } bigdecimal b = ใหม่ bigdecimal (double.toString (v)); return b.setscale (scale, round_mode) .doublevalue (); } / ** * ให้การปัดเศษของทศนิยมที่แม่นยำโหมดการปัดเศษใช้ round_half_even * @param v หมายเลขที่ต้องกลม * @param มาตราส่วนจำนวนตัวเลขจะถูกเก็บไว้หลังจากที่ทศนิยม * @ @return ผลลัพธ์หลังจากการปัดเศษจะถูกส่งกลับในรูปแบบสตริง * / } / *** ให้การปัดเศษของทศนิยมที่แม่นยำ* @param v หมายเลขที่ต้องโค้งมน* @param ขนาดจำนวนตัวเลขจะถูกเก็บไว้หลังจากที่ทศนิยม* @param round_mode ที่ระบุการปัดเศษ* @@Return ผลลัพธ์หลังจากการปัดเศษ เป็นจำนวนเต็มบวกหรือศูนย์ "); } bigdecimal b = ใหม่ bigdecimal (v); return b.setscale (scale, round_mode) .tostring (); -