2011-10-06 9 views
6

SQL (एमएस एसक्यूएल सर्वर) Decimal .NET में समतुल्य क्या है?एसक्यूएल दशमलव .NET में बराबर है

यह Double, Decimal या Float (xbx8 में VB.NET) होना चाहिए?

+0

'दशमलव '' डबल' के बाद से सटीक ढीला हो सकता है ... – Yahia

+0

@Yahia उपयोग के आधार पर, दशमलव एक सटीक खो देता है। मुख्य अंतर यह है कि दशमलव 10 आधार है और डबल द्विआधारी है। माना जाता है कि आमतौर पर मुद्रा कार्य के लिए उपयोग किया जाता है और इसलिए परिशुद्धता शायद ही कभी एक मुद्दा है। –

+0

@ डेविड हेफरन - असल में, यदि स्रोत डेसिमल है, तो फ्लोट में कनवर्ट करना वह जगह है जहां आप परिशुद्धता खोने का जोखिम लेते हैं। – MatBailie

उत्तर

15

वहाँ .NET में कोई सटीक समान प्रकार, के रूप में एसक्यूएल के दशमलव प्रकार, नियत बिन्दु है, जबकि नेट के System.Decimal प्रकार एक अस्थायी (दशमलव) पॉइंट प्रकार है।

हालांकि, System.Decimal निश्चित रूप से निकटतम मैच है, और आमतौर पर SQL डेटाबेस में दशमलव कॉलम में संग्रहीत मान का प्रतिनिधित्व करने के लिए उपयोग किया जाना चाहिए।

+0

दशमलव, हालांकि, (सामान्य) परिशुद्धता के कारण, "सामान्य" प्रकार चार फ़्लोटिंग मान नहीं है। व्यक्तिगत रूप से मैं डबल बार अक्सर उपयोग करता हूं ... लेकिन संबंधित मानों को मैप करने के लिए ... मुझे लगता है कि मैं दशमलव के साथ जाऊंगा ... – serhio

+2

@ सेरियियो: असल में मुझे लगता है कि अधिकांश व्यावसायिक ऐप्स शायद 'दशमलव' का उपयोग अक्सर 'डबल' से अधिक करते हैं '। परिशुद्धता महत्वपूर्ण बात नहीं है - यह डेटा की प्रकृति और प्रकार के * आधार * की प्रकृति है। यदि आप एक मानव निर्मित मात्रा संग्रहित कर रहे हैं, तो दशमलव सही दृष्टिकोण होने की संभावना है। ऊंचाई और चौड़ाई जैसे "प्राकृतिक" मानों के लिए, 'डबल' अधिक उपयुक्त है। –

+0

@ जॉन्सकेट, क्या आप इसके बारे में निश्चित हैं? यह आलेख आपके साथ भिन्न होना चाहता है: http://gregs-blog.com/2007/12/10/dot-net-decimal-type-vs-float-type/ – Johan

10

Decimal का उपयोग करें, जैसा कि this table में देखा जा सकता है।

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