Number Formatter
Format numbers for different locales and styles: decimal, currency, percentage, scientific, and engineering notation. See international number formatting differences.
Formatted by Locale
| Locale | Formatted | |
|---|---|---|
US English en-US | 1,234,567.89 | |
UK English en-GB | 1,234,567.89 | |
German de-DE | 1.234.567,89 | |
French fr-FR | 1 234 567,89 | |
Spanish es-ES | 1.234.567,89 | |
Japanese ja-JP | 1,234,567.89 | |
Chinese zh-CN | 1,234,567.89 | |
Arabic (SA) ar-SA | ١٬٢٣٤٬٥٦٧٫٨٩ | |
Indian English en-IN | 12,34,567.89 | |
Portuguese (BR) pt-BR | 1.234.567,89 | |
Russian ru-RU | 1 234 567,89 | |
Korean ko-KR | 1,234,567.89 |
How to Use Number Formatter
- 1Enter any number in the input field.
- 2Choose a locale (US, EU, UK, India, etc.) and format style (decimal, currency, percentage).
- 3View the formatted number and copy it for use in your application.
Zenovay
Track your website performance
Real-time analytics, session replay, heatmaps, and AI insights. 2-minute setup, privacy-first.
Related Tools
Color ConverterConvert colors between HEX, RGB, HSL, and CMYK formats. Live preview with color picker.
Unit ConverterConvert between units of length, weight, temperature, area, volume, speed, and more.
Number Base ConverterConvert numbers between binary, octal, decimal, and hexadecimal bases.
Unix Timestamp ConverterConvert between Unix timestamps and human-readable dates. Show ISO 8601, UTC, local time, and relative time.
Frequently Asked Questions
Why do different countries format numbers differently?▾
Number formatting varies globally by convention. Decimal separator: US/UK use period (1,234.56); most of Europe uses comma (1.234,56); Switzerland uses apostrophe for thousands (1'234,56). Thousand grouping: most countries group by 3 digits; India uses 2-2-3 grouping (1,23,456). Currency placement: USD uses $1,234 (prefix); EUR uses 1.234 € (suffix in some locales). Writing direction also affects formatting. The Unicode CLDR (Common Locale Data Repository) standardizes locale data used by Intl.NumberFormat.
What is Intl.NumberFormat in JavaScript?▾
Intl.NumberFormat is a built-in JavaScript API for locale-aware number formatting. Basic: new Intl.NumberFormat("de-DE").format(1234.5) → "1.234,5". Currency: new Intl.NumberFormat("en-US", {style: "currency", currency: "USD"}).format(1234.5) → "$1,234.50". Percentage: new Intl.NumberFormat("en-US", {style: "percent"}).format(0.42) → "42%". Options: minimumFractionDigits, maximumFractionDigits, notation ("standard", "scientific", "engineering", "compact"), compactDisplay.
What is the difference between scientific and engineering notation?▾
Scientific notation: one non-zero digit before decimal, any exponent. Example: 1.23 × 10^6 for 1,230,000. Engineering notation: exponent always a multiple of 3 (kilo, mega, giga...). Example: 1.23 × 10^6 or 123 × 10^3. SI prefixes map to engineering notation: 10^3 = kilo (k), 10^6 = mega (M), 10^9 = giga (G), 10^-3 = milli (m), 10^-6 = micro (μ). Engineering notation is preferred in electronics and physics where SI prefixes have practical meaning.
What is compact number notation?▾
Compact notation abbreviates large numbers: 1,200 → "1.2K", 1,200,000 → "1.2M", 1,200,000,000 → "1.2B" (US) or "1.2Md" (French). Implemented via Intl.NumberFormat with notation: "compact". Short form: "1.2K", "1.2M". Long form: "1.2 thousand", "1.2 million". This varies by locale — Japanese uses 万 (man, 10,000) and 億 (oku, 100M) instead of thousands. Useful for dashboards, analytics, and social media metric displays.
How do I format currencies correctly in web apps?▾
Never hardcode currency symbols — use Intl.NumberFormat. Example: new Intl.NumberFormat("ja-JP", {style: "currency", currency: "JPY"}).format(1234) → "¥1,234" (no decimals). Tips: always separate the currency code from the formatted string for storage — store 1234.56 and "USD" separately. For accounting, negative amounts often use parentheses: (1,234.56). Use ISO 4217 currency codes (USD, EUR, GBP, JPY). Display currency per the user's locale, not the currency's origin country.