สิ่งที่ฉันต้องการคือวิธีการแปลง double เป็น string ซึ่งปัดโดยใช้ half-up method เช่นถ้าทศนิยมที่จะปัดเศษเป็น 5 มันจะปัดเศษเป็นตัวเลขถัดไปเสมอ นี่เป็นวิธีมาตรฐานในการปัดเศษที่คนส่วนใหญ่คาดหวังในสถานการณ์ส่วนใหญ่
ฉันต้องการให้แสดงเฉพาะตัวเลขที่สำคัญเท่านั้น - นั่นคือไม่ควรมีเลขศูนย์ต่อท้าย
ฉันรู้วิธีหนึ่งในการทำเช่นนี้คือการใช้String.format
วิธีการ:
String.format("%.5g%n", 0.912385);
ผลตอบแทน:
0.91239
อันไหนดี แต่มันจะแสดงตัวเลขที่มีทศนิยม 5 ตำแหน่งเสมอแม้ว่ามันจะไม่สำคัญ:
String.format("%.5g%n", 0.912300);
ผลตอบแทน:
0.91230
วิธีอื่นคือใช้DecimalFormatter
:
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
ผลตอบแทน:
0.91238
อย่างไรก็ตามอย่างที่คุณเห็นนี่ใช้การปัดเศษแบบครึ่งคู่ นั่นคือมันจะปัดเศษหากตัวเลขก่อนหน้านี้เป็นเลขคู่ สิ่งที่ฉันต้องการคือ:
0.912385 -> 0.91239
0.912300 -> 0.9123
วิธีที่ดีที่สุดในการบรรลุสิ่งนี้ใน Java คืออะไร?