निम्नलिखित कार्यक्रम में आप देख सकते हैं कि प्रत्येक मूल्य थोड़ा कम है .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
मैं जावा 6 अपडेट 31 का उपयोग कर रहा हूं।
0.5
से संख्या को जोड़कर और फिर उपयोग करके सटीक नुकसान का कारण बन सकता है floor
; जावा 7 अब इसे उस तरह से दस्तावेज नहीं करता है (संभवतः / उम्मीद है क्योंकि उन्होंने इसे तय किया है)।