में फ़्लोटिंग पॉइंट प्रकारों का पूर्ण सटीक आउटपुट मेरे पास 1555.4899999999998
float
कॉलम में डिफ़ॉल्ट परिशुद्धता (53) के साथ संग्रहीत मूल्य है। जब मैं एक साधारण select
करता हूं, तो एसएसएमएस सभी उपलब्ध सटीकता के साथ इसे प्रिंट करने के बजाय आउटपुट को गोल करता है। इसके कारण हाल ही में मेरे लिए कुछ गठजोड़ हुए हैं क्योंकि वास्तविक मुद्रित मूल्य से मेल खाने के लिए मूल्य मुद्रित float
शाब्दिक के रूप में काम नहीं करता है।SQL सर्वर प्रबंधन स्टूडियो
उदाहरण के लिए, (ध्यान दें कि इन नंबरों के दोनों डिफ़ॉल्ट float
में एक सटीक प्रतिनिधित्व)
declare @f1 float
declare @f2 float
set @f1 = 1555.49
set @f2 = 1555.4899999999998
select @f1, @f2
select STR(@f1,30,15), STR(@f2,30,15)
आउटपुट:
1555.49 1555.49
1555.490000000000000 1555.489999999999800
क्वेरी विश्लेषक में, कि पहले select
आउटपुट:
1555.49 1555.4899999999998
यही वह व्यवहार है जिसे मैं चाहता हूं प्रबंधन स्टूडियो से मिलता है। एसएसएमएस को इसके परिणाम प्रदर्शन में गोल करने से रोकने का कोई तरीका है?
डेटाबेस स्कीमा मेरे नियंत्रण से बाहर है, दुर्भाग्य से। मैं समझौते में 100% हूं कि 'फ्लोट' इस एप्लिकेशन के लिए एक खराब विकल्प है, लेकिन यदि यह सही प्रकार था तो मैं अभी भी प्रबंधन स्टूडियो में एक और सटीक प्रतिनिधित्व की उम्मीद करता हूं। – Simon