हर बार जब हमें उच्च दशमलव-परिशुद्धता की आवश्यकता होती है, तो हम गणना करने के लिए दशमलव का उपयोग करते हैं। क्या जांच करने के लिए परिशुद्धता पर्याप्त है या नहीं, यह जांचने का कोई तरीका है?गलत गणना पर अपवाद कैसे प्राप्त करें?
मैं निम्नलिखित कोड बनाने के लिए चाहते हैं एक अपवाद फेंक:
decimal almostMax = Decimal.MaxValue - 1;
decimal x = almostMax + 0.1m; // This should create an exception, since x equals almostMax.
Assert.AreEqual(x, almostMax); // This does NOT fail.
यह वास्तव में वास्तविक कोड में कोई फर्क नहीं पड़ता है, लेकिन यह सुरक्षित है अच्छा होगा।
दशमलव में 28 अंकों की सटीकता है (कुछ, लेकिन सभी नहीं, मूल्यों में 2 9 अंक हो सकते हैं)। दशमलव के रूप में। मैक्सवेल्यू 28 गीगाइट संख्या है, जो 0.1 मीटर दशमलव की परिशुद्धता से अधिक है, यही कारण है कि दो मान बराबर हैं और सम्मिलन विफल नहीं होता है। – PaulF
@ पॉलफ, मुझे लगता है कि ओपी को इसके बारे में पता है। वह रनटाइम के दौरान इस समस्या का पता लगाने के लिए एक रास्ता तलाश रहा है। –
कृपया ध्यान रखें कि एक अपवाद हेवीवेट ऑपरेशन है और केवल उन चीज़ों के लिए उपयोग किया जाना चाहिए जो नहीं होना चाहिए। यदि ऐसा लगता है कि कुछ गणना विफल हो जाएंगी, तो आपको "TryParse" जैसे पैटर्न का उपयोग करना चाहिए जो फेंकने के बजाए बूलियन लौटाता है और बहुत तेज़ होगा। – Lukos