सवाल अपेक्षाकृत सरल है। मुझे 3 कॉलमों की गणना करने की आवश्यकता है जहां मध्य परिणाम विशाल दशमलव हैं, और मैं एसक्यूएल सर्वर के साथ जल्दी से एक समस्या में चल रहा हूं मूल रूप से किसी भी डाली / धर्मान्तरित की परवाह किए बिना दशमलव को गोल कर रहा हूं।
उदाहरण के लिए, एक साधारण विभाजन को 1234/1233 के रूप में करते हैं। एक कैलकुलेटर 1,00081103000811 का उत्पादन करेगा। लेकिन जब मैं SQL सर्वर पर ऐसा करता हूं, तो हमें निम्नलिखित मिलते हैं:
-- Result: rounded at 1.000811000... with trailing zeroes up until the 37 precision
SELECT CAST(CAST(1234 AS DEC(38,34))/CAST(1233 AS DEC(38,34)) AS DEC(38,37))
-- Result: rounded at 1.000811
SELECT CONVERT(DECIMAL(38,32), 1234)/CONVERT(DECIMAL(38,32),1233)
-- Correct result at 1,00081103000811
-- But this requires the zeroes to be put in manually when you don't
-- even know the precision of the end result
SELECT 1234.0/1233.00000000000000
यह स्वचालित चक्कर क्यों होता है? और जब तक आप यह सुनिश्चित नहीं कर सकते कि सबसे बड़ी संख्या (int या dec भाग) कितनी बड़ी होगी, तब तक तालिका के विभिन्न भिन्न मान हो सकते हैं।
धन्यवाद!