c# - Math.Round for even and odd numer in Silverlight -
मैंने जब मैं मान = 0.0015 के लिए प्रयोग किया जाता है, तो परिणाम 0.002 होगा जब मैं मान = 0.0025 के लिए उपयोग किया जाता है, परिणाम अभी भी 0.002 ऐसा लगता है कि आखिरी अंक कितना भी नंबर है, यह गोल हो जाएगा, लेकिन जब अंतिम अंक एक अजीब संख्या है, तब यह बढ़ जाएगा। इस समस्या को हल कैसे करें? अतिरिक्त: Silverlight में, कोई भी Math.Round
जैसा Math.Round (value, precision) । परिशुद्धता 3 है।
MidpointRounding
एक अलग गोलाई प्रकार का चयन करके देखें
उस लिंक से:
सिस्टम का उपयोग कर; सार्वजनिक वर्ग उदाहरण {सार्वजनिक स्थिर शून्य मुख्य () {डबल [] मूल्य = {2.125, 2.135, 2.145, 3.125, 3.135, 3.145}; विदेशी मुद्रा (मूल्यों में दोहरे मूल्य) कंसोल। WrightLine ("{0} - & gt; {1}", मूल्य, गणित। राउंड (मान, 2, मिडपॉइंट रोइंग। ऐवेफ्रम ज़ेरो)); }} // उदाहरण निम्नलिखित आउटपुट प्रदर्शित करता है: // 2.125 - & gt; 2.13 / 2.135 - & gt; 2.13 / 2.145 - & gt; 2.15 // 3.125 - & gt; 3.13 / 3.135 - & gt; 3.14 / 3.145 - & gt; 3.15
अधिक जानकारी:
जैसा कि एक टिप्पणीकार द्वारा नोट किया गया है 2.135 - & gt; 2.13
सही नहीं दिखता है यह फ्लोटिंग प्वाइंट एगुरीजेस के कारण है मूल लेख में कहा गया है:
सटीकता के नुकसान की वजह से दशमलव मूल्यों को फ़्लोटिंग-पॉइंट नंबर के रूप में प्रस्तुत करने या फ्लोटिंग-पॉइंट वैल्यू पर अंकगणित कार्रवाई करने से हो सकता है, कुछ मामलों में गोल (डबल , इंट 32, मिडपॉइंट रोइंग) विधि मोड पैरामीटर द्वारा निर्दिष्ट के रूप में मिडपॉइंट मान को गोल करने के लिए प्रकट नहीं हो सकता है। यह निम्नलिखित उदाहरण में स्पष्ट किया गया है, जहां 2.135 2.14 के स्थान पर 2.13 पर गिने जा रहा है। ऐसा इसलिए होता है क्योंकि आंतरिक रूप से विधि 10digits के मूल्य में पलता है, और इस मामले में गुणन ऑपरेशन सटीकता के नुकसान से ग्रस्त है।
Comments
Post a Comment