JSFiddle - React, Tailwind, and code Playground
Intl number playground.
by Nalin Sajwan
JavaScript
const number = 123456.789;
const formatNumber = (
value,
locale,
currency,
style,
) => {
return new Intl.NumberFormat(locale, {
style: 'currency',
currency,
notation: Math.abs(value) < 10000 ? undefined : 'compact',
minimumFractionDigits: 2,
maximumFractionDigits: 2,
}).format(value || 0);
};
[1000000, 10000, 1000, 10000, 1000000000, -10000].forEach(num => {
console.log('\n\nnumber: ', num);
console.log('formatted', formatNumber(num, 'en-INR', 'INR'));
})
/*
console.log(new Intl.NumberFormat('en-DE', { style: 'currency', currency: 'EUR' }).format(number));
// Expected output: "123.456,79 €"
// The Japanese yen doesn't use a minor unit
console.log(new Intl.NumberFormat('en-JP', { style: 'currency', currency: 'JPY' }).format(number));
// Expected output: "¥123,457"
// Limit to three significant digits
console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(number));
// Expected output: "1,23,000" */