Geography & Reference
World Number Format Guide
See how numbers, currency and percentages are written in any locale — the separators and symbols that make data legible to every audience.
Formatted in de-DE
Plain number
1.234.567,89
Currency (EUR)
1.234.567,89 EUR
Percent
12 %
Notable contrasts: en-US writes 1,234.56; de-DE writes 1.234,56; fr-FR writes 1 234,56 (narrow space). The same digits, three different conventions.
The same number, three conventions
The number one thousand two hundred thirty-four point five six is written three ways: 1,234.56 in English, 1.234,56 in German, and 1 234,56 in French. The digits are identical; only the separators differ. Yet a parser built for one convention will misread another entirely — the English 1,234.56 read as a German number becomes one point two three four. Number formatting is one of the quietest but most consequential locale differences.
This guide shows how any number renders in each of two dozen locales — plain, as currency and as a percentage — so you build forms, reports and interfaces that read correctly for every audience.
Decimal and thousand separators
The decimal separator divides the integer from the fraction; the thousand separator groups digits for readability. English and much of Asia use a dot decimal and a comma thousands separator. Most of Europe, Latin America and Russia use the reverse: a comma decimal and a dot (or space) thousands. France and some others use a space for thousands.
These conventions are stable within a region but differ across them, which is why a single number can be interpreted three ways. For data exchange, store numbers as plain numerals with a dot decimal and no thousands separator; format them only at display time using the viewer's locale.
Parsing user input safely
The hardest part of number handling is parsing what users type. A form field accepting '1.234' must know the user's locale to decide whether that is one thousand two hundred thirty-four or one point two three four. The safe approach is to parse with the locale's formatter, or to accept only an unambiguous input style (no thousands separator, dot decimal) and convert.
For international forms, the most robust pattern is to accept plain numeric input (digits and a single dot) and format it for display in the user's locale — accepting localized separators is possible but error-prone. The displayed result reassures the user the value was understood.
Currency placement and symbols
Currency formatting adds a symbol or code and places it according to the locale: $10 in en-US, 10 € in de-DE, €10 in en-IE. Some locales put a space between the value and the symbol; others do not. Negative amounts can use a minus, parentheses or a trailing sign depending on locale. The locale formatter handles all of this; hand-formatting currency is a common source of bugs.
For multi-currency displays, show the ISO code (USD, EUR) alongside the symbol to disambiguate, and let the locale place them. Storing the currency code with every monetary value is essential — a number alone is meaningless without it.
Percentages and other formats
Percentages have their own conventions: the percent sign's position and spacing vary by locale, and some Asian locales use characters like 万 to group large numbers (10,000 = 1万). Scientific and compact notation (1.2K, 1.2M) also differ. The Intl formatter covers all of these through style options.
For dashboards and reports, compact notation is increasingly expected — showing '1.2M' instead of '1,234,567' improves readability. Just be sure the locale's compact notation is what your audience expects; the formatter chooses the right grouping (万 in ja-JP, million-words in en-US) automatically.
Digits beyond 0–9
Most of the world uses Western Arabic digits (0–9), but some locales use other digit shapes: Eastern Arabic (٠–٩), Devanagari, Thai and others. The Intl formatter renders the correct digits for the locale automatically, and a well-built input parser accepts them. Hardcoding ASCII digits excludes users in these locales.
For most international software, the practical rule is: never hand-format numbers, never hand-parse them, and always pass a locale. The platform's formatter handles separators, symbols, placement, digits and grouping correctly for any locale, and it updates as conventions evolve.
Frequently Asked Questions
What are decimal and thousand separators?
English uses a dot for decimals and a comma for thousands (1,234.56). Most of Europe uses the reverse (1.234,56). France uses a space for thousands and a comma decimal (1 234,56). These are locale conventions, not personal preferences.
Why does this matter in software?
Parsing user-typed numbers and formatting output for display both depend on the locale. A European user typing '1.234' means one thousand two hundred thirty-four; an American means one point two three four. Mixing conventions breaks forms and data.
What is the ISO convention?
ISO 80000 and SI recommend a space (or thin space) as the thousands separator and a comma as the decimal marker, to avoid the dot-comma ambiguity. In practice, software follows the user's locale rather than ISO for display.
Are currency symbols placed before or after?
It varies. USD writes $10; EUR writes 10 € in most locales but €10 in Irish English. The locale formatter handles placement correctly; hand-formatting currency risks putting the symbol on the wrong side.
Do all locales use the same digits?
Most use Western Arabic digits (0–9), but some locales use Eastern Arabic or other digit shapes. The Intl formatter renders the correct digits for the locale automatically.
This guide contains approximately 625 words of original, semantically structured reference content for search and AI engines.