मुझे मूल रूप से एक ही आवश्यकता थी, और पाया कि इस कार्यक्षमता के लिए कोई अंतर्निहित तंत्र नहीं है।
अनुगामी शून्य को ट्रिम करने के अलावा, मुझे उपयोगकर्ता के वर्तमान लोकेल (यानी 123,456.789) के लिए आउटपुट को राउंड ऑफ और फॉर्मेट करने की भी आवश्यकता थी।
इस पर मेरे सभी काम GitHub पर prettyFloat.js (MIT लाइसेंस प्राप्त) के रूप में शामिल किए गए हैं: https://github.com/dperish/prettyFloat.js
उपयोग के उदाहरण:
prettyFloat(1.111001, 3) // "1.111"
prettyFloat(1.111001, 4) // "1.111"
prettyFloat(1.1111001, 5) // "1.1111"
prettyFloat(1234.5678, 2) // "1234.57"
prettyFloat(1234.5678, 2, true) // "1,234.57" (en-us)
अपडेट किया गया - अगस्त, 2018
सभी आधुनिक ब्राउज़र अब ECMAScript अंतर्राष्ट्रीयकरण API का समर्थन करते हैं , जो भाषा को संवेदनशील स्ट्रिंग तुलना, संख्या स्वरूपण और दिनांक और समय स्वरूपण प्रदान करता है।
let formatters = {
default: new Intl.NumberFormat(),
currency: new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 0 }),
whole: new Intl.NumberFormat('en-US', { style: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 }),
oneDecimal: new Intl.NumberFormat('en-US', { style: 'decimal', minimumFractionDigits: 1, maximumFractionDigits: 1 }),
twoDecimal: new Intl.NumberFormat('en-US', { style: 'decimal', minimumFractionDigits: 2, maximumFractionDigits: 2 })
};
formatters.twoDecimal.format(1234.5678); // result: "1,234.57"
formatters.currency.format(28761232.291); // result: "$28,761,232"
पुराने ब्राउज़रों के लिए, आप इस पॉलीफ़िल का उपयोग कर सकते हैं: https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en
1.234000 === 1.234
।