2 दशमलव स्थानों के लिए प्रारूप संख्या


154

मैं जानना चाहूंगा कि मूल संख्या को राउंड किए बिना मैं 2 दशमलव स्थानों के साथ एक नंबर कैसे आउटपुट कर सकता हूं।

उदाहरण के लिए:

2229,999 -> 2229,99

मैंने पहले ही प्रयास किया:

FORMAT(2229.999, 2)
CONVERT(2229.999, DECIMAL(4,2))

ऐसा लगता है कि आप आदेश का उपयोग करने की कोशिश कर रहे हैं। क्यों नहीं सिर्फ अंत्येष्टि में निर्मित का उपयोग करें?
फॉलनर्रेपर

आप दशमलव की जरूरत नहीं होने के लिए क्या DECIMAL(6,2))। 6- परिशुद्धता (कुल अंकों की संख्या) और 2 दशमलव के बाद अंकों की संख्या है?
user5249203

जवाबों:


82

आप TRUNCATEकमांड का उपयोग करना चाहते हैं ।

https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_truncate


9
हमेशा नीचे "गोल" काटें। १.९९ को २ डीपी से १.९९ जोड़ा जाएगा जहां १.२२ गणितीय रूप से अधिक सही होगा। अगर यह कोई समस्या नहीं है तो ट्रंकट का जुर्माना लेकिन आपको इसके बारे में पता होना चाहिए।
गॉर्डन

मैं गॉर्डन के लिए सहमत हूं और TRUNCATE को विशेष रूप से फ्लोटिंग पॉइंट नंबरों के साथ उपयोग किया जाना चाहिए!
नेबुलसर

364

2 दशमलव स्थानों के लिए संख्या स्वरूपण करते समय आपके पास दो विकल्प होते हैं TRUNCATEऔर ROUND। आप TRUNCATEफ़ंक्शन की तलाश कर रहे हैं ।

उदाहरण:

गोलाई के बिना:

TRUNCATE(0.166, 2)
-- will be evaluated to 0.16

TRUNCATE(0.164, 2)
-- will be evaluated to 0.16

डॉक्स: http://www.w3resource.com/mysql/mathematical-functions/mysql-truncate-function.php

गोलाई के साथ:

ROUND(0.166, 2)
-- will be evaluated to 0.17

ROUND(0.164, 2)
-- will be evaluated to 0.16

डॉक्स: http://www.w3resource.com/mysql/mathematical-functions/mysql-round-function.php


2
truncateजब आप संख्याओं को कम करना चाहते हैं, तो आपको संख्याओं का प्रारूपण करना चाहिए । उसने सवाल में यह स्पष्ट कर दिया कि वह यही करना चाहती है। गोलाई के कई तरीके हैं (फर्श, छत, दूर-से-शून्य, की ओर-शून्य, आधा-अप, आधा-आधा, आधा-समान)। वे विभिन्न संदर्भों में उपयुक्त हैं।
किप

16
हाँ, निश्चित रूप से, लेकिन जैसा कि मैं देख सकता हूँ कि बहुत से लोग पाते हैं कि मेरा उत्तर मददगार था या शायद उन्हें यह प्रश्न तब मिला जब वे ROUND कमांड की तलाश में थे। मैं इसे वैसे ही छोड़ दूँगा।
जमरसीली

"आपको संख्याओं को प्रारूपित करने के लिए TRUNCATE का उपयोग नहीं करना चाहिए क्योंकि आप बस छंटे हुए अंकों को खो देंगे" => ठीक है, यह ट्रंकचर का बिंदु है ... मैं नहीं देखता कि हमें गणित के साथ 0.17 कैसे प्राप्त करना चाहिए। आपका उत्तर प्रोग्रामिंग उदाहरणों के लिए एकदम सही है, लेकिन यह पूरी तरह से नहीं है।
बेनोइट डफ़्ज़

2
जैसा कि मैंने पहले कहा था। मुझे पता है कि यह इस प्रश्न का सही उत्तर नहीं है, लेकिन लोग इसे पसंद करते हैं :) शायद प्रश्न शीर्षक के कारण जो किसी ऐसे व्यक्ति के लिए खोज परिणाम हो सकता है जो ROUNDफ़ंक्शन की तलाश में है।
जमरकेली

फिर आपको इसे ठीक करना चाहिए। मैं अभी भी सभी के लिए उपयोगी होगा, और यह 100% सही होगा। जीत-जीत :)
बेनोइट डफेज़

14

CAST(2229.999 AS DECIMAL(6,2)) 2 दशमलव स्थानों के साथ एक दशमलव कैसे प्राप्त करें


4
मुझे लगता है कि आप कास्ट (2229.999 दशमलव के रूप में) (4,2) का मतलब है
चाचा Iroh

@UncleIroh, नहीं, मुझे लगता है कि वह वास्तव में मतलब है convert(2229.999 as decimal(4,2))
पचेरियर

3
@ स्पेसर - दोनों तकनीकी रूप से काम करते हैं। हालाँकि, कन्वर्ट के लिए प्रारूप एक अल्पविराम के साथ रूपांतरित (2229.999, दशमलव (4,2)) है, इसलिए आप शायद इस बात में ठीक हैं कि वह किस लिए जा रहा था।
चाचा Iroh

@UncleIroh, आह हाँ, मेरे टाइपो ऊपर। मैं बात कर रहा था convert(2229.999, decimal(4,2))
पचेरियर

4
CAST (2229.999 AS DECIMAL (4,2)) आपको 99.99 देगा। दशमलव स्थान के बाईं ओर 2 सहित अंकों की अधिकतम संख्या है। CAST (2229.99 AS DECIMAL (6,2)) आपको 2230.00
russjohnson09


0

इस तरह मैंने इसका उपयोग एक उदाहरण के रूप में किया है:

CAST(vAvgMaterialUnitCost.`avgUnitCost` AS DECIMAL(11,2)) * woMaterials.`qtyUsed` AS materialCost

0

दशमलव के रूप में दिखाएँ ifnull चुनें (प्रारूप (100.00, 1, 'en_US'), 0) 100.0

प्रतिशत के रूप में दिखाएँ कॉनसैट (ifnull (प्रारूप (100.00, 0, 'en_US'), 0), '%') 100% चुनें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.