मैं एक प्रणाली है कि दशमलव का उपयोग कर गणना के बहुत सारे प्रदर्शन कर रही है, कभी कभी यह एक ही संख्या जोड़ देगा, लेकिन अलग अलग परिणाम देते हैं, +/- 0,000000000000000000000000001अलावा की दशमलव के क्रम को प्रभावित करता है परिणाम
यहाँ एक छोटी उदाहरण है:
decimal a = 2.016879990455473621256359079m;
decimal b = 0.8401819425625631128956517177m;
decimal c = 0.4507062854741283043456903406m;
decimal d = 6.7922317815078349615022988627m;
decimal result1 = a + b + c + d;
decimal result2 = a + d + c + b;
Console.WriteLine((result1 == result2) ? "Same" : "DIFFERENT");
Console.WriteLine(result1);
Console.WriteLine(result2);
आउटपुट यही कारण है कि:
DIFFERENT
10.100000000000000000000000000
10.100000000000000000000000001
मतभेद इतना छोटा कोई व्यावहारिक प्रभाव है वहाँ है, लेकिन किसी को भी देखा यह ख की तरह कुछ है कर रहे हैं efore? मुझे उम्मीद थी कि एक ही संख्या को जोड़ते समय आपको हमेशा एक ही परिणाम मिलेंगे।
यह StackOverflow पर सबसे आम आवर्ती सवाल है। –
गूगल चल बिन्दु अयथार्थ प्रतिनिधित्व, उस पर विकिपीडिया पढ़ा या तो खोज :) – sehe
यह उल्लेख है कि 'decimal' डेटा प्रकार दौर बंद त्रुटियों के लिए प्रतिरक्षा माना जाता है लायक है। http://msdn.microsoft.com/en-us/library/system.decimal(v=vs.71).aspx –