1) select CAST(FLOOR(2 * 3.69) / 2 AS decimal(2, 1))
पहला मामला संभालता है - एक एसक्यूएल सर्वर फ़ोरम पर इसी तरह के प्रश्न के उत्तर के सौजन्य से
, जिसे मैंने अनुकूलित किया और जल्दी से जाँच लिया।
ध्यान दें कि यदि आप जिन नंबरों को निकटतम 0.5
पर गोल कर रहे हैं बड़ा हो सकता है (उदा. 333.69
=> 333.5
), अधिक decimal
निर्दिष्ट करना सुनिश्चित करें सटीक जब आप कास्ट करते हैं (उदा. select CAST(FLOOR(2 * 3.69) / 2 AS decimal(10, 1))
), या आपको एक अतिप्रवाह त्रुटि मिल सकती है:
Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting numeric to data type numeric.
अतिरिक्त सटीकता बॉटम-लाइन परिणाम को प्रभावित नहीं करेगी (यानी select CAST(FLOOR(2 * 3.69) / 2 AS decimal(10, 1))
और select CAST(FLOOR(2 * 3.69) / 2 AS decimal(2, 1))
चुनें दोनों उपज 3.5
); लेकिन यह बेकार है यदि आप जिन संख्याओं को गोल कर रहे हैं वे हमेशा छोटी रहेंगी।
उदाहरणों के साथ ऑनलाइन संदर्भ टी-एसक्यूएल के लिए उपलब्ध हैं FLOOR
, CAST
, और decimal
मदद करने के लिए।
2) select ROUND(142600, -3)
दूसरा मामला संभालता है।
ऐसा ही एक ऑनलाइन संदर्भ टी-एसक्यूएल ROUND
।