मुझे SQL सर्वर में फ़्लोट को दशमलव (28,10) रूपांतरित करने की आवश्यकता है। मेरी समस्या यह है कि फ्लोट की प्रकृति के कारण, और जिस तरह से रूपांतरण किए जाते हैं, बस फ्लोट कास्टिंग करने से यह मेरे उपयोगकर्ताओं के लिए गलत संख्या हो सकता है।फ़्लोट से दशमलव तक (SQL सर्वर)
उदाहरण के लिए:
Float: 280712929.22
Cast as Decimal: 280712929.2200000300
What I think I want: 280712929.2200000000
मैं जिस तरह से नाव काम करता है के बारे में थोड़ा समझ में समझने के लिए क्यों यह अंत में 300 कहते हैं पर्याप्त नहीं (है कि यह एक अनुमानित डेटा आदि प्रकार है), लेकिन बेशक। क्या यह आसानी से रूपांतरण के दुष्प्रभाव के रूप में कचरा है, या यह किसी भी तरह फ्लोट वास्तव में स्टोर करता है का एक और सटीक प्रतिनिधित्व है? मेरे लिए ऐसा लगता है कि यह पतली हवा से सटीक खींच लिया गया है।
आखिरकार, मुझे यह सटीक होना चाहिए, लेकिन "दाएं" को भी देखना चाहिए। मुझे लगता है कि मुझे उस नीचे की संख्या प्राप्त करने की आवश्यकता है, जैसा कि ऐसा लगता है कि मैंने अभी पिछली शून्य जोड़ दी है। क्या यह संभव है? क्या यह एक अच्छा या बुरा विचार है, और क्यों? अन्य सुझावों का स्वागत है।
कुछ अन्य उदाहरण:
Float: 364322379.5731
Cast as Decimal: 364322379.5730999700
What I want: 364322379.5731000000
Float: 10482308902
Cast as Decimal: 10482308901.9999640000
What I want: 10482308902.0000000000
साइड नोट: नया डेटाबेस तालिका है कि मैं में इन मूल्यों को डाल रहा हूं मेरे उपयोगकर्ता द्वारा पठनीय है। उन्हें वास्तव में केवल दो दशमलव स्थानों की आवश्यकता है, लेकिन भविष्य में यह बदल सकता है इसलिए हमने दशमलव (28,10) के साथ जाने का फैसला किया है। दीर्घकालिक लक्ष्य फ़्लोट कॉलम को कनवर्ट करना है जिसे मैं अपना डेटा दशमलव से भी प्राप्त कर रहा हूं।
संपादित करें: कभी-कभी फ़्लोट जो मेरे पास कभी भी आवश्यक दशमलव की तुलना में अधिक दशमलव स्थान हैं, उदाहरण के लिए: -0.628475064730907। इस स्थिति में -0.6284750647 कास्ट ठीक है। जब तक मेरे पास 10 दशमलव स्थान नहीं हैं तब तक मुझे फ्लोट के अंत में शून्य जोड़ने के लिए मूल रूप से मेरे परिणाम की आवश्यकता होती है।
शायद मैं इस सवाल का जवाब मिल गया। http://stackoverflow.com/questions/34316871/how-can-the-following-result-of-casting-from-float-to-numeric-be-explained –