Number Formatter

Enter a number and pick a style — it updates as you type.

How it works

Each style is built on the browser's own Intl.NumberFormat / toLocaleString, not hand-rolled grouping logic — US groups by thousands with a comma and a dot decimal, European swaps those two, Indian groups by lakh and crore (2-digit groups after the first 3), and Space uses French grouping, a narrow space between groups and a comma decimal. Scientific gives two significant fraction digits in 1.23e+6 form, and Compact abbreviates to the nearest thousand/million/billion, like 1.2M. The number itself is read as a string first and converted once — see the precision note below for why that still has a limit.

Frequently asked questions

What does "Indian" grouping actually mean?

It groups by lakh (100,000) and crore (10,000,000) instead of by thousands: after the first three digits from the right, every remaining group is 2 digits rather than 3. 1,234,567 in US grouping is 12,34,567 in Indian grouping — same number, grouped where the local number names (lakh, crore) actually fall.

Why does a very large number look wrong after formatting?

JavaScript numbers are only exact up to 2^53 (9,007,199,254,740,991). Past that, a value is rounded to the nearest representable number before this tool ever sees it to format — so formatting one that large formats an already-approximate value, honestly, rather than pretending the extra digits survived.

What is compact notation for?

Compact notation ("1.2M", "3.4K") trades exactness for a label that reads in a glance — a dashboard tile, a chart axis, a stat card. "1,234,567" is the precise figure; "1.2M" is the same figure sized for a place where every character costs space.