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
।