2012-12-21 7 views
9

RoundingMode प्रोग्रामर को यह निर्दिष्ट करने की अनुमति देता है कि किस तरह फ़्लोटिंग पॉइंट नंबर गोल किए जाने हैं। यह बहुत अच्छा है और सब कुछ है, लेकिन इसके बारे में यह एक बात है जो मुझे अनोखा लगता है। शायद मैंने स्कूल में कुछ मौलिक समझा।जावा के RoundingMode HALF_UP दौर -2.5 से -3 क्यों करता है?

लेकिन इस राउंडिंग मोड को स्कूल में पढ़ाया जाने वाला एक व्यक्ति के रूप में वर्णित किया गया है, "हमेशा निकटतम संख्या में जाएं, और जब केंद्र में मृत हो, हमेशा गोल करें।", लेकिन यह -2.5 से -3 क्यों है ?

मैं निष्कर्ष निकाला कि यह पूर्ण मूल्यों के संदर्भ में है, लेकिन -2, मेरे लिए निश्चित रूप से -2.5 से "ऊपर" है।

+0

इस प्रश्न पर एक नज़र डालें: http://stackoverflow.com/questions/269721/rounding-negative-numbers-in-java –

+0

http://docs.oracle.com/javase/1.5.0/docs/ एपीआई/जावा/गणित/RoundingMode.html इस पर एक नज़र डालें। यह आपको जिस विधि को ढूंढ रहा है उसे ढूंढने में आपकी सहायता कर सकता है। –

उत्तर

6

RoundingMode.UP "शून्य से दूर" के लिए गोलाकार मोड है। RoundingMode.FLOOR नकारात्मक अनंतता की ओर है, और CEILING सकारात्मक अनंतता की ओर है। HALF_UPUP के साथ संगत है जब fractional भाग बिल्कुल 0.5 है।

उन्हें कुछ शब्द "शून्य से दूर" का अर्थ चुनना पड़ा।

3

तर्क को जावाडॉक्स में RoundingMode.HALF_UP के लिए रेखांकित किया गया है।

राउंडिंग मोड "निकटतम पड़ोसी" की ओर घूमने के लिए गोल करें जब तक कि दोनों पड़ोसी समान नहीं हैं, इस मामले में राउंड अप। RoundingMode.UP के लिए Behaves यदि छोड़ा गया अंश> = 0.5 है; अन्यथा, RoundingMode.DOWN के रूप में व्यवहार करता है। ध्यान दें कि यह गोलाकार मोड आमतौर पर स्कूल में पढ़ाया जाता है।

गोलाई तरीकों के बारे में Wikipedia लेख एक अलग दावा करता है:

उदाहरण के लिए, इस नियम मूल्य 23.5 से 24 गोल हो जाता है, लेकिन -23.5 -23 तक पूर्ण हो जाता है।

यह आम तौर पर अमेरिकी प्राथमिक गणित वर्गों में पढ़ाए गए दो नियमों में से एक है।

हालांकि एक उद्धरण अनुरोध किया गया है।

+3

ओपी का असली मुद्दा गलत धारणा प्रतीत होता है कि 'RoundingMode.UP' को "सकारात्मक अनंतता की ओर" के रूप में व्याख्या किया जाना है, जिसे वर्तमान में इस उत्तर में संबोधित नहीं किया गया है। –

संबंधित मुद्दे