ฉันมีปัญหาเดียวกันนี้เพราะรหัสของฉันคือ:
txtTotalInvoice.setText(var1.divide(var2).doubleValue() + "");
ฉันเปลี่ยนเป็นอ่านคำตอบก่อนหน้าเพราะฉันไม่ได้เขียนทศนิยมแม่นยำ:
txtTotalInvoice.setText(var1.divide(var2,4, RoundingMode.HALF_UP).doubleValue() + "");
4 คือระบบกำหนดตำแหน่งทศนิยม
และ RoundingMode เป็นค่าคงที่ของ Enum คุณสามารถเลือกสิ่งนี้ได้
UP, DOWN, CEILING, FLOOR, HALF_DOWN, HALF_EVEN, HALF_UP
ในกรณีนี้ HALF_UP จะมีผลลัพธ์นี้:
2.4 = 2
2.5 = 3
2.7 = 3
คุณสามารถตรวจสอบRoundingMode
ข้อมูลได้ที่นี่: http://www.javabeat.net/precise-rounding-of-decimals-using-rounding-mode-enumeration/