2011-06-23 21 views
12

.नेट, जब मैं दो SqlDecimals, इसलिए जैसे जोड़ने में:दो .NET SqlDecimals जोड़ना परिशुद्धता बढ़ता है?

SqlDecimal s1 = new SqlDecimal(1); 
SqlDecimal s2 = new SqlDecimal(1); 
SqlDecimal s3 = s1 + s2; 

तो S3 परिशुद्धता 2 है, जबकि दोनों S1 और s2 परिशुद्धता 1.

है यह विशेष रूप से प्रलेखन राज्यों के रूप में, अजीब लगता है कि अतिरिक्त ऑपरेटर का रिटर्न वैल्यू "एक नई SQLDecimal संरचना है जिसका मूल्य संपत्ति योग है।" अर्थात। दस्तावेज़ीकरण के अनुसार, अतिरिक्त परिशुद्धता को बदलना नहीं चाहिए।

क्या मुझे यहां कुछ याद आ रही है? क्या यह इरादा व्यवहार है?

चीयर्स,

टिलमैन

+0

अक्सर दो फ्लोट मान जोड़ने के मामले में उदाहरण के लिए परिणाम परिणाम ओवरफ़्लो को लेने में दोगुना कहता है। तो अजीब लगता है कि वास्तव में अजीब नहीं है, यह सही संदर्भ के साथ, समझ का एक बड़ा सौदा करता है। –

+0

धन्यवाद, 'परिशुद्धता' की परिभाषा को फिर से पढ़ने के बाद, वास्तव में यह बहुत अधिक समझ में आया ... फिर फिर, अतिरिक्त ऑपरेशन को वास्तविक मूल्य को खाते में नहीं लेना चाहिए और आवश्यक होने पर केवल सटीकता को समायोजित करना चाहिए? – user812775

उत्तर

4

This article (http://msdn.microsoft.com/en-us/library/ms190476.aspx) एसक्यूएल प्रकार के लिए व्यवहार बताते हैं, और मुझे लगता है। नेट एसक्यूएल डेटा प्रकार उनके व्यवहार में दर्शाते हैं।

+0

धन्यवाद, वास्तव में समझ में आता है :) – user812775

3

मुझे यह व्यवहार सामान्य लगता है।

PrecisionValueसंपत्ति का प्रतिनिधित्व करते थे अंक की अधिकतम संख्या के रूप में परिभाषित किया गया है।

संख्याओं की संख्या Precision1 के बराबर है [-10,10] में निहित एक संख्या है। इस मामले में अधिकतम Precision आवश्यक है 2

संबंधित मुद्दे