2012-11-29 12 views
5

मैं अपने मानों को फ्लोट्स के रूप में स्टोर करना चाहता हूं, लेकिन उन्हें पुनर्प्राप्त करते समय उपयोगकर्ता निर्दिष्ट (और रनटाइम पर बदल सकता है) दशमलव बिंदु के बाद वह कितने अंक देखना चाहता है।दिए गए परिशुद्धता के साथ एक फ्लोट चुनें

क्या मैं इसे अपने SELECT में किसी भी तरह से पास कर सकता हूं, या मुझे इसे अपने आवेदन में करना है?

उत्तर

8

हाँ, बस के लिए ROUND()

SELECT ROUND(23.298, <precision>); 
इस के साथ

दूसरा पैरामीटर निर्दिष्ट करते हैं, आप अंक आप वापस आ पाने के लिए चाहते हैं की संख्या निर्दिष्ट कर सकते हैं। (आपके पास नकारात्मक मूल्य भी हो सकते हैं, किसी भी मामले में, इनपुट 10 (-precision) पर गोल हो जाता है)।

या आप इस्तेमाल कर सकते हैं CAST रूप DECIMAL:

CAST(2.5 AS DECIMAL(20,2)) 

(नोट: इस बाद CAST('2.5' AS DECIMAL(20,2)) की तरह, भी शाब्दिक जानकारी के साथ काम करेंगे, लेकिन इस मामले में यह फ्लोट आदानों के बारे में है)

4

उपयोग ROUND() , CEIL() या FLOOR() ऐसा करने के लिए और उपयोगकर्ता के इनपुट के रूप में दूसरे तर्क का मूल्य प्राप्त करने के लिए प्राप्त करें।

+0

+1, मैं पूरी तरह से सीईआईएल और मंजिल के बारे में भूल गया! – ppeterka

संबंधित मुद्दे