मैं यह कैसे करूं पता नहीं है? मैं अल्पविराम संख्याएँ जोड़ रहा हूँ, परिणाम हमेशा अल्पविराम के बाद कई अंको के साथ एक संख्या है। किसी को?
मैं यह कैसे करूं पता नहीं है? मैं अल्पविराम संख्याएँ जोड़ रहा हूँ, परिणाम हमेशा अल्पविराम के बाद कई अंको के साथ एक संख्या है। किसी को?
जवाबों:
संपादित करें 2 :
का प्रयोग करें Number
वस्तु की toFixed
इस तरह विधि:
var num = Number(0.005) // The Number() only visualizes the type and is not needed
var roundedString = num.toFixed(2);
var rounded = Number(roudedString); // toFixed() returns a string (often suitable for printing already)
यह 42.0054321 से 42.01 तक गोल है
यह 0.005 से 0.01 तक गोल है
यह -0.005 से -0.01 तक है (इसलिए .5 बॉर्डर पर पूर्ण मान बढ़ता है)
अद्यतन: ध्यान रखें, जिस समय उत्तर 2010 में शुरू में लिखा गया था, उस समय bellow फ़ंक्शन को toFixed () थोड़ा अलग काम किया गया था। लगता है () अब कुछ राउंडिंग कर रहा है, लेकिन सख्ती से गणितीय तरीके से नहीं। इसलिए इससे सावधान रहें। अपने परीक्षण करें ... वर्णित विधि अच्छी तरह से राउंडिंग करेगी, जैसा कि गणितज्ञ उम्मीद करेंगे।
toFixed()
- विधि एक संख्या को एक स्ट्रिंग में परिवर्तित करती है, एक निर्दिष्ट संख्या में दशमलव रखती है। यह वास्तव में एक संख्या को गोल नहीं करता है, यह संख्या को काट देता है।Math.round(n)
- निकटतम पूर्णांक के लिए एक संख्या को गोल करता है। इस प्रकार मोड़:0.5 -> 1; 0.05 -> 0
इसलिए यदि आप राउंड करना चाहते हैं, तो 0.55555 नंबर कहें, केवल दूसरे दशमलव स्थान पर; आप निम्नलिखित कर सकते हैं (यह चरण-दर-चरण अवधारणा है):
0.55555 * 100
= 55.555 Math.Round(55.555)
-> 56.00056.000 / 100
= 0.56000 (0.56000).toFixed(2)
-> 0.56और यह कोड है:
(Math.round(number * 100)/100).toFixed(2);
यह मेरे लिए काम किया:
var new_number = float.toFixed(2);
उदाहरण:
var my_float = 0.6666
my_float.toFixed(3) # => 0.667
0.6666.toFixed(3)
हो जाता 0.666
है 0.667
। @Andrei को सही तरीके से गोलाई के लिए सही समाधान लगता है।
toFixed()
पूरी तरह से काम करता है 0.6666.toFixed(3) # => 0.667
:। मैं इसे आपके उत्तर में जोड़ दूंगा।
पिछले उत्तर आउटपुट को फिर से संख्या के रूप में लिखना भूल गए। ऐसा करने के कई तरीके हैं, जो आपके स्वाद पर निर्भर करता है।
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
यद्यपि हमारे पास बहुत सारे उपयोगी सुझावों के साथ यहां कई उत्तर हैं, लेकिन उनमें से प्रत्येक अभी भी कुछ चरणों को याद करता है ।
तो यहाँ एक छोटे से समारोह में लिपटे पूर्ण समाधान है:
function roundToTwoDigitsAfterComma(floatNumber) {
return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2));
}
बस अगर आप रुचि रखते हैं कि यह कैसे काम करता है:
toFixed(2)
और कॉमा के बाद 2 अंक रखने के लिए उपयोग करें और अन्य अप्रयुक्त भाग को फेंक देंparseFloat()
रूप में फ़ंक्शन
का उपयोग करके इसे वापस फ्लोट में कनवर्ट करेंtoFixed(2)
नोट: यदि आप मौद्रिक मानों के साथ काम करने के कारण अल्पविराम के बाद अंतिम 2 अंक रखते हैं, और वित्तीय गणना करते समय ध्यान रखें कि यह एक अच्छा विचार नहीं है और आप इसके बजाय पूर्णांक मानों का बेहतर उपयोग करेंगे।
नीचे दिए गए कोड का उपयोग करें।
alert(+(Math.round(number + "e+2") + "e-2"));
मैं इसका उपयोग करता हूं:
function round(value, precision) {
if(precision == 0)
return Math.round(value);
exp = 1;
for(i=0;i<precision;i++)
exp *= 10;
return Math.round(value*exp)/exp;
}