मेरे पास नेट के अंदर एक गोल समस्या है।नेट राउंडिंग अंक
मैं एक 3 अंक संख्या को दो अंकों तक गोल कर रहा हूं और यह एक संख्या के साथ कुछ समस्याएं पैदा कर रहा है।
यदि मैं 34.425 से दो दशमलव स्थानों पर घूमने की कोशिश करता हूं तो इसे 34.43 तक ले जाना चाहिए। मैं roundawayfromzero विकल्प का उपयोग कर रहा हूं और इस कार्यक्रम को छोड़कर इस कार्यक्रम में हर नंबर के लिए काम किया है।
कोड Math.Round(34.425, 2, MidpointRounding.AwayFromZero)
34.43 के बराबर होना चाहिए, हालांकि, यह 34.42 के बराबर है।
यदि मैं इसे किसी अन्य नंबर से आजमाता हूं तो यह ठीक काम करता है।
Math.Round(34.435, 2, MidpointRounding.AwayFromZero) = 34.44
Math.Round(34.225, 2, MidpointRounding.AwayFromZero) = 34.23
Math.Round(34.465, 2, MidpointRounding.AwayFromZero) = 34.47
मैं सिर्फ यह देखना चाहता था कि कोई इस समस्या में भाग गया है या नहीं?
अभी के लिए मैंने संख्या को दशमलव में परिवर्तित करके इस समस्या को ठीक कर दिया है। मैं इस के लिए कोड बदल दिया है और अब यह ठीक काम करता है:
Math.Round(CDec(34.425), 2, MidpointRounding.AwayFromZero) = 34.43
मैं सिर्फ क्यों मेरे पुराने कोड काम नहीं किया पर एक कारण के लिए देख रहा हूँ।
धन्यवाद!
सही AwayFromZero
दशमलव सुझाव के लिए +1 –
प्रतिक्रिया के लिए धन्यवाद। मुझे लगता है कि मेरा बड़ा सवाल यह है कि यह अन्य सभी मूल्यों के लिए क्यों काम करता है? – Jeff
यदि यह एक चर था तो मुझे भी आपके साथ सहमत होना होगा। हालांकि, मैं इस मूल्य को घड़ी सूची में 34.425 के रूप में डाल रहा था। तो इसे 34.434 99 999 के रूप में प्रदर्शित नहीं किया जाना चाहिए ... क्या यह मेरी धारणा में सही है? – Jeff