दिलचस्प पोस्ट
सूचीबैक्स को पॉप्युलेट करने के लिए मैं सभी देशों / शहरों की सूची कहां प्राप्त कर सकता हूं? अद्यतन और हटाने के लिए HTTP स्थिति कोड? जावा में, मैं बाइनरी प्रारूप में एक पूर्णांक स्थिरता को परिभाषित कर सकता हूँ? संश्लेषित संपत्ति और चर अंडरस्कोर उपसर्ग के साथ: इसका क्या अर्थ है? ASP.NET MVC ViewModels के साथ knockout.js का उपयोग कैसे करें? टर्नरी ऑपरेटर कैसे काम करता है? फायरबसे से डेटा पूछताछ किसी भी ऑनलाइन संसाधन से कनेक्ट नहीं हो सकता RecyclerView के लिए बर्खास्त करने के लिए स्वाइप करें सी + + टेम्पलेट, लिंकिंग त्रुटि यूआईटीबल्यूव्यू में आईफोन एकाधिक कॉलम jQuery Sortable – एकाधिक सूची आइटम का चयन करें और खींचें जावा में एक विधि का अधिकतम आकार? कोणीय 2 भाई घटक संचार jQuery डेटा बनाम एटआर?

जावास्क्रिप्ट का उपयोग कर मैं कैसे प्रारूपों को प्रारूपित करूं?

मैं जावास्क्रिप्ट का उपयोग कर संख्या को प्रारूपित करना चाहता हूं।

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

10 => 10.00 100 => 100.00 1000 => 1,000.00 10000 => 10,000.00 100000 => 100,000.00 

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट का उपयोग कर मैं कैसे प्रारूपों को प्रारूपित करूं?"

यदि आप अंतर्निहित कोड का उपयोग करना चाहते हैं, तो आप toLocaleString() साथ minimumFractionDigits toLocaleString() उपयोग कर सकते हैं, हालांकि toLocaleString() पर विस्तारित विकल्पों के लिए ब्राउज़र संगतता सीमित है ।

 var n = 100000; var value = n.toLocaleString( undefined, // use a string like 'en-US' to override browser locale { minimumFractionDigits: 2 } ); console.log(value); // In en-US, logs '100,000.00' // In de-DE, logs '100.000,00' // In hi-IN, logs '1,00,000.00' 

JasperV द्वारा पाया गया कीड़े के कारण – अच्छे अंक! – मैंने अपने पुराने कोड को फिर से लिखा है मुझे लगता है कि मैंने केवल दो दशमलव स्थानों के साथ सकारात्मक मूल्यों के लिए इसका इस्तेमाल किया है

आप जो हासिल करने की कोशिश कर रहे हैं उसके आधार पर, आप गोलाई चाहते हैं या नहीं, इसलिए ये दो संस्करण विभाजन के पार विभाजित हैं।

पहले, गोलाई के साथ

मैंने toFixed() पद्धति को प्रस्तुत किया है क्योंकि यह विशिष्ट दशमलव स्थानों को सही ढंग से घूमता है और अच्छी तरह से समर्थन करता है। यह धीमा चीजें नीचे हालांकि करता है

यह संस्करण अभी भी दशमलव को अलग करता है, लेकिन पहले की तुलना में एक अलग विधि का उपयोग कर रहा है। w|0 भाग दशमलव को निकालता है उस पर अधिक जानकारी के लिए, यह एक अच्छा जवाब है । इसके बाद शेष पूर्णांक को छोड़ देता है, इसे k में भंडारित करता है और फिर इसे मूल संख्या से फिर से घटा देता है, दशमलव को अपने आप में छोड़ देता है।

इसके अलावा, यदि हम नकारात्मक संख्याओं को ध्यान में रखते हैं, तो हमें लूप (तीन अंकों को छोड़कर) होने की आवश्यकता है जब तक कि हम b मार देते। नकारात्मक संख्या से निपटने के लिए, ऐसा कुछ करने से बचने के लिए 1, 1 -,100.00 गणना की जाती है

बाकी लूप पहले की तरह ही है

 function formatThousandsWithRounding(n, dp){ var w = n.toFixed(dp), k = w|0, b = n < 0 ? 1 : 0, u = Math.abs(wk), d = (''+u.toFixed(dp)).substr(2, dp), s = ''+k, i = s.length, r = ''; while ( (i-=3) > b ) { r = ',' + s.substr(i, 3) + r; } return s.substr(0, i + 3) + r + (d ? '.'+d: ''); }; 

नीचे दिए गए स्निपेट में आप स्वयं का परीक्षण करने के लिए संख्याओं को संपादित कर सकते हैं।

 function formatThousandsWithRounding(n, dp){ var w = n.toFixed(dp), k = w|0, b = n < 0 ? 1 : 0, u = Math.abs(wk), d = (''+u.toFixed(dp)).substr(2, dp), s = ''+k, i = s.length, r = ''; while ( (i-=3) > b ) { r = ',' + s.substr(i, 3) + r; } return s.substr(0, i + 3) + r + (d ? '.'+d: ''); }; var dp; var createInput = function(v){ var inp = jQuery('<input class="input" />').val(v); var eql = jQuery('<span>&nbsp;=&nbsp;</span>'); var out = jQuery('<div class="output" />').css('display', 'inline-block'); var row = jQuery('<div class="row" />'); row.append(inp).append(eql).append(out); inp.keyup(function(){ out.text(formatThousandsWithRounding(Number(inp.val()), Number(dp.val()))); }); inp.keyup(); jQuery('body').append(row); return inp; }; jQuery(function(){ var numbers = [ 0, 99.999, -1000, -1000000, 1000000.42, -1000000.57, -1000000.999 ], inputs = $(); dp = jQuery('#dp'); for ( var i=0; i<numbers.length; i++ ) { inputs = inputs.add(createInput(numbers[i])); } dp.on('input change', function(){ inputs.keyup(); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input id="dp" type="range" min="0" max="5" step="1" value="2" title="number of decimal places?" /> 

उपयोग

 num = num.toFixed(2); 

जहां 2 दशमलव स्थानों की संख्या है

संपादित करें:

फ़ॉरमेट नंबर को फॉरमेट करने के लिए फ़ंक्शन आपको करना है

 function formatNumber(number) { number = number.toFixed(2) + ''; x = number.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; } 

सॉर्से: http://www.mredkj.com

लघु समाधान:

 var n = 1234567890; String(n).replace(/(.)(?=(\d{3})+$)/g,'$1,') // "1,234,567,890" 

उन ब्राउज़रों पर जो ECMAScript® 2016 अंतर्राष्ट्रीयकरण एपीआई विशिष्टता (ईसीएमए -402) का समर्थन करता है, आप एक Intl.NumberFormat उदाहरण का उपयोग कर सकते हैं:

 var nf = Intl.NumberFormat(); var x = 42000000; console.log(nf.format(x)); // 42,000,000 in many locales // 42.000.000 in many other locales 
 if (typeof Intl === "undefined" || !Intl.NumberFormat) { console.log("This browser doesn't support Intl.NumberFormat"); } else { var nf = Intl.NumberFormat(); var x = 42000000; console.log(nf.format(x)); // 42,000,000 in many locales // 42.000.000 in many other locales } 

मुझे लगता है कि इस jQuery-numberformatter के साथ आप अपनी समस्या को हल कर सकते हैं

 $("#salary").blur(function(){ $(this).parseNumber({format:"#,###.00", locale:"us"}); $(this).formatNumber({format:"#,###.00", locale:"us"}); }); 

बेशक, यह मान रहा है कि आपको अपनी प्रोजेक्ट में jQuery का उपयोग करने में समस्या नहीं है।

 function numberWithCommas(x) { x=String(x).toString(); var afterPoint = ''; if(x.indexOf('.') > 0) afterPoint = x.substring(x.indexOf('.'),x.length); x = Math.floor(x); x=x.toString(); var lastThree = x.substring(x.length-3); var otherNumbers = x.substring(0,x.length-3); if(otherNumbers != '') lastThree = ',' + lastThree; return otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree + afterPoint; } console.log(numberWithCommas(100000)); console.log(numberWithCommas(10000000)); 

संख्या फ़ंक्शन को toFixed और कॉमा को जोड़ने के लिए इस फ़ंक्शन का उपयोग करें।

 function addCommas(nStr) { nStr += ''; var x = nStr.split('.'); var x1 = x[0]; var x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; } n = 10000; r = n.toFixed(2); //10000.00 addCommas(r); // 10,000.00 

http://www.mredkj.com/javascript/numberFormat.html

यह आपकी समस्या के बारे में एक लेख है हजारों सेपरेटर जोड़ना जावास्क्रिप्ट में नहीं बनाया गया है, इसलिए आपको इस तरह अपना स्वयं का फ़ंक्शन लिखना होगा (लिंक किए गए पृष्ठ से लिया गया उदाहरण):

 function addSeperator(nStr){ nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; } 

या आप sugar.js लाइब्रेरी और प्रारूप विधि का उपयोग कर सकते हैं:

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

उदाहरण:

 (56782).format() > "56,782" (56782).format(2) > "56,782.00" (4388.43).format(2, ' ') > "4 388.43" (4388.43).format(3, '.', ',') > "4.388,430" 
  function formatNumber1(number) { var comma = ',', string = Math.max(0, number).toFixed(0), length = string.length, end = /^\d{4,}$/.test(string) ? length % 3 : 0; return (end ? string.slice(0, end) + comma : '') + string.slice(end).replace(/(\d{3})(?=\d)/g, '$1' + comma); } function formatNumber2(number) { return Math.max(0, number).toFixed(0).replace(/(?=(?:\d{3})+$)(?!^)/g, ','); } 

स्रोत: http://jsperf.com/number-format

यह आपको अपने अल्पविराम से अलग मूल्यों को प्राप्त करेगा और साथ ही निश्चित अंकन को अंत तक जोड़ देगा।

  nStr="1000"; nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } commaSeperated = x1 + x2 + ".00"; alert(commaSeperated); 

स्रोत

मुझे यहां अपने समाधान को भी फेंकने दो। मैंने पढ़ने की आसानी के लिए प्रत्येक पंक्ति पर टिप्पणी की है और कुछ उदाहरण भी प्रदान किए हैं, इसलिए यह बहुत बड़ा लग सकता है

 function format(number) { var decimalSeparator = "."; var thousandSeparator = ","; // make sure we have a string var result = String(number); // split the number in the integer and decimals, if any var parts = result.split(decimalSeparator); // if we don't have decimals, add .00 if (!parts[1]) { parts[1] = "00"; } // reverse the string (1719 becomes 9171) result = parts[0].split("").reverse().join(""); // add thousand separator each 3 characters, except at the end of the string result = result.replace(/(\d{3}(?!$))/g, "$1" + thousandSeparator); // reverse back the integer and replace the original integer parts[0] = result.split("").reverse().join(""); // recombine integer with decimals return parts.join(decimalSeparator); } document.write("10 => " + format(10) + "<br/>"); document.write("100 => " + format(100) + "<br/>"); document.write("1000 => " + format(1000) + "<br/>"); document.write("10000 => " + format(10000) + "<br/>"); document.write("100000 => " + format(100000) + "<br/>"); document.write("100000.22 => " + format(100000.22) + "<br/>"); 

यदि आप तीन महत्वपूर्ण अंकों की सीमा के साथ स्वरूपण की तलाश कर रहे हैं, उदाहरण के लिए:

 1,23,45,67,890.123 

उपयोग:

 number.toLocaleString('en-IN'); 

काम का उदाहरण:

 let number = 1234567890.123; document.write(number.toLocaleString('en-IN')); 

यदि आप jQuery का उपयोग कर रहे हैं, तो आप प्रारूप या संख्या प्रारूप प्लगइन्स का उपयोग कर सकते हैं।

स्वीकृत उत्तर के बारे में यह 3 गुना तेज संस्करण है। यह सरणी नहीं बनाता और अंत में पूरे नंबर के लिए ऑब्जेक्ट सृजन और स्ट्रिंग संयोजन से बचा जाता है। यह उपयोगी हो सकता है यदि आप बहुत सारे मान प्रस्तुत करते हैं जैसे तालिका में

 function addThousandSeparators(number) { var whole, fraction var decIndex = number.lastIndexOf('.') if (decIndex > 0) { whole = number.substr(0, decIndex) fraction = number.substr(decIndex) } else { whole = number } var rgx = /(\d+)(\d{3})/ while (rgx.test(whole)) { whole = whole.replace(rgx, '$1' + ',' + '$2') } return fraction ? whole + fraction : whole }