ในโปรแกรมต่อไปนี้คุณจะเห็นว่าแต่ละค่าน้อยกว่า.5
จะถูกปัดเศษลงยกเว้น0.5
จะถูกปัดเศษลงยกเว้น
for (int i = 10; i >= 0; i--) {
long l = Double.doubleToLongBits(i + 0.5);
double x;
do {
x = Double.longBitsToDouble(l);
System.out.println(x + " rounded is " + Math.round(x));
l--;
} while (Math.round(x) > i);
}
พิมพ์
10.5 rounded is 11
10.499999999999998 rounded is 10
9.5 rounded is 10
9.499999999999998 rounded is 9
8.5 rounded is 9
8.499999999999998 rounded is 8
7.5 rounded is 8
7.499999999999999 rounded is 7
6.5 rounded is 7
6.499999999999999 rounded is 6
5.5 rounded is 6
5.499999999999999 rounded is 5
4.5 rounded is 5
4.499999999999999 rounded is 4
3.5 rounded is 4
3.4999999999999996 rounded is 3
2.5 rounded is 3
2.4999999999999996 rounded is 2
1.5 rounded is 2
1.4999999999999998 rounded is 1
0.5 rounded is 1
0.49999999999999994 rounded is 1
0.4999999999999999 rounded is 0
ฉันใช้การอัพเดท Java 6 31
0.5
หมายเลขและจากนั้นใช้floor
; Java 7 ไม่มีเอกสารเป็นอย่างนั้นอีกต่อไป (น่าจะเป็น / หวังว่าเพราะพวกเขาแก้ไขมัน)