PostgreSQL में, round()
फ़ंक्शन का उपयोग किसी संख्या को गोल करने के लिए किया जाता है।
फ़ंक्शन दो तरीकों में से एक में काम कर सकता है, इस पर निर्भर करता है कि आप इसका उपयोग कैसे करते हैं। आप इसे संख्या को निकटतम पूर्णांक तक, या दशमलव स्थानों की एक निर्दिष्ट संख्या में गोल कर सकते हैं।
यह आपके द्वारा फ़ंक्शन को कॉल करने पर आपके द्वारा पास किए गए तर्कों की संख्या से निर्धारित होता है।
सिंटैक्स
round()
फ़ंक्शन का उपयोग निम्न में से किसी भी तरीके से किया जा सकता है:
round(dp or numeric)
round(v numeric, s int)
पहला सिंटैक्स संख्या को निकटतम पूर्णांक तक ले जाता है। dp
double precision
को इंगित करता है ।
दूसरा सिंटैक्स इसे दशमलव स्थानों की एक निर्दिष्ट संख्या में गोल करता है। इस मामले में, v
संख्या है, और s
दशमलव स्थानों की संख्या है।
इस फ़ंक्शन के लिए वापसी प्रकार इनपुट प्रकार के समान है।
प्रथम सिंटैक्स का उदाहरण
यहां एक उदाहरण दिया गया है जो पहले सिंटैक्स का उपयोग करता है।
SELECT round(13.50);
परिणाम:
14
इस मामले में भिन्नात्मक सेकंड 50 हैं और इसलिए संख्या को गोल किया जाता है ऊपर निकटतम पूर्णांक तक।
यदि भिन्नात्मक सेकंड 50 से कम होते, तो इसे पूर्णांकित किया जाता, और परिणाम 13 होता।
इसका एक उदाहरण यहां दिया गया है।
SELECT round(13.49);
परिणाम:
13
दूसरे सिंटैक्स का उदाहरण
यहां एक उदाहरण दिया गया है जो दूसरे सिंटैक्स का उपयोग करता है।
SELECT round(13.50, 1);
परिणाम:
13.5
इस मामले में, कुछ भी गोल नहीं किया गया था और शून्य को बस गिरा दिया गया था। ऐसे मामलों में, यह वही परिणाम देता है जो हमने देखा होगा यदि हम trunc()
का उपयोग करते हैं समारोह।
हालांकि, अगर हम भिन्नात्मक सेकंड को थोड़ा समायोजित करते हैं, तो हम देखेंगे कि परिणाम गोल है।
SELECT
round(13.45, 1) AS "13.45",
round(13.44, 1) AS "13.44";
परिणाम:
13.45 | 13.44 -------+------- 13.5 | 13.4
हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि परिणाम पूरी तरह से इस बात पर निर्भर करता है कि आप दूसरे तर्क में कितने भिन्न सेकंड निर्दिष्ट करते हैं।
यहां फिर से वही उदाहरण दिया गया है, लेकिन दो दशमलव स्थानों के साथ निर्दिष्ट किया गया है।
SELECT
round(13.45, 2) AS "13.45",
round(13.44, 2) AS "13.44";
परिणाम:
13.45 | 13.44 -------+------- 13.45 | 13.44
इस मामले में कुछ भी गोल नहीं किया गया था, क्योंकि मैंने दशमलव स्थानों की सटीक संख्या निर्दिष्ट की थी जो मैंने प्रदान की थी।
आंशिक सेकंड जोड़ना
मूल संख्या की तुलना में आपको अधिक भिन्नात्मक सेकंड निर्दिष्ट करने से रोकने के लिए कुछ भी नहीं है।
SELECT
round(13.45, 3) AS "13.45",
round(13.44, 3) AS "13.44";
परिणाम:
13.45 | 13.44 --------+-------- 13.450 | 13.440
इस मामले में यह केवल भिन्न सेकंड के दाहिने हिस्से में एक शून्य जोड़ देता है।
यहां कई दशमलव स्थानों को निर्दिष्ट करने का एक उदाहरण दिया गया है जब मूल संख्या में कोई भिन्नात्मक सेकंड शामिल नहीं होता है।
SELECT round(12, 3);
परिणाम:
12.000
नकारात्मक दशमलव स्थान
यहां बताया गया है कि जब दूसरा तर्क नकारात्मक मान होता है तो क्या होता है।
SELECT round(789, -2);
परिणाम:
800
यहाँ कुछ और हैं।
SELECT
round(789, -2),
round(789, -1),
round(489, -2),
round(489, -1),
round(489, -3);
परिणाम:
round | round | round | round | round -------+-------+-------+-------+------- 800 | 790 | 500 | 490 | 0
राउंड() बनाम ट्रंक()
कुछ मामलों में, round()
फ़ंक्शन trunc()
. के समान कार्य करता प्रतीत हो सकता है . लेकिन वे काफी अलग हैं।
round()
फ़ंक्शन संख्या को गोल करता है। संख्या को निकटतम पूर्णांक या दशमलव स्थानों की निर्दिष्ट संख्या तक गोल किया जाता है (इस पर निर्भर करता है कि आप इसे एक तर्क या दो तर्क देते हैं)।
trunc()
दूसरी ओर फ़ंक्शन केवल संख्या को शून्य या निर्दिष्ट दशमलव स्थान तक छोटा कर देता है। कोई गोलाई नहीं की जाती है।
अंतर दिखाने के लिए यहां एक उदाहरण दिया गया है।
SELECT
round(1.49, 1),
trunc(1.49, 1);
परिणाम:
round | trunc -------+------- 1.5 | 1.4