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" */