c# - Math.Round for even and odd numer in Silverlight -


मैंने Math.Round जैसा Math.Round (value, precision) । परिशुद्धता 3 है।

जब मैं मान = 0.0015 के लिए प्रयोग किया जाता है, तो परिणाम 0.002 होगा

जब मैं मान = 0.0025 के लिए उपयोग किया जाता है, परिणाम अभी भी 0.002

ऐसा लगता है कि आखिरी अंक कितना भी नंबर है, यह गोल हो जाएगा, लेकिन जब अंतिम अंक एक अजीब संख्या है, तब यह बढ़ जाएगा।

इस समस्या को हल कैसे करें?

अतिरिक्त: Silverlight में, कोई भी 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

Popular posts from this blog

scala - Play Framework - how to bind form to a session field -

c++ - Why does Visual Studio Release build break on non-executing code line -

Firefox reacting to JQuery setTimeout that doesn't apply -