HomeFormattersTextNumber Formatter

Number Formatter

Text

Format any number with custom thousands separators, decimal places, and locale — Indian, US, European styles. Instant, in-browser, no sign-up required.

Reviewed by the thecalcu.com team · Last updated July 27, 2026

What is a Number?

A Number Formatter takes a numeric value and applies locale-specific formatting rules, thousands separators, decimal points, currency symbols, and notation styles, to produce a human-readable representation. The same number, 1234567.89, can legitimately appear as ₹12,34,567.89 in Indian finance, $1,234,567.89 in US accounting, 1.234.567,89 in German documents, or 1.23M on a dashboard, depending on the audience and context.

Getting number formatting right matters. A financial report using the wrong grouping style can be misread by thousands. An invoice with the incorrect currency symbol is unprofessional. A web application that uses the browser's raw Number.toString() output, 1234567.89, without any formatting is harder to read than necessary.

This formatter uses the browser's native Intl.NumberFormat API, which covers all major locales with accurate rules. It supports six format styles: Decimal (locale-appropriate thousands grouping), Currency (symbol + grouping + decimal places per currency standard), Percent, Scientific (e.g. 1.23e+6), Engineering (exponents as multiples of three), and Compact (e.g. 1.2M or 12L in Indian locale).

For the Indian Rupee system specifically, including the amount-in-words output used on cheques and official documents, see the dedicated Rupee Formatter.


Why Use a Number Formatter?

Manually adding thousands separators or figuring out whether a number belongs to the Indian or international grouping convention takes mental effort and introduces typos. An automated formatter handles the rules correctly every time and instantly shows what the number looks like under different locale conventions, useful when building a product for multiple markets.

It also bridges the gap between raw numeric data (from APIs, spreadsheets, or database queries) and the display format expected in reports, invoices, and UI components.


Who Should Use This Formatter?

Developers and designers, checking what a number will look like in a specific locale before hardcoding a format in application code.

Finance and accounting teams, formatting numbers consistently for reports, invoices, and presentations.

Students and educators, understanding the differences between Indian and international numbering conventions, or exploring scientific and engineering notation.

Content writers, ensuring that large numbers in articles and reports use the correct regional convention for their audience.

For converting numbers to Rupee words for cheques and legal documents, use the Rupee Formatter. For formatting dates, use the Date Formatter.


What Does the Number Formatter Give You?

  • Formatted Number, the number rendered in the chosen locale and style.
  • In Words, for whole numbers, the amount written out in Indian English words (one crore fifty lakh twenty-five thousand and so on). This appears when the input is an integer or when Decimal Places is set to 0.

How to use this Number calculator

  1. Enter a number in the Number field, use a plain numeric value like 1234567.89.
  2. Choose a Format Style, Decimal for plain number, Currency for a currency symbol, Compact for short forms.
  3. Choose a Locale, Indian (en-IN) applies lakh/crore grouping; US (en-US) uses the 1,000 grouping.
  4. If Currency is selected, enter the Currency Code (e.g. INR, USD, EUR).
  5. Choose Decimal Places or leave on Auto.
  6. The Formatted Number and In Words outputs update instantly.
  7. Click Copy next to either output to copy it to your clipboard.

Formula & Methodology

Thousands grouping (decimal style): Uses Intl.NumberFormat with the specified locale. Indian locale (en-IN) applies the South Asian grouping system: last three digits grouped, then pairs going left (e.g. 12,34,56,789).

Currency: Intl.NumberFormat with style: 'currency' and the specified ISO 4217 currency code. Decimal places default to the currency's standard (2 for INR/USD/EUR, 0 for JPY).

Percent: Value divided by 100 before formatting with style: 'percent'.

Scientific: Native Number.toExponential(n).

Engineering: Exponent rounded down to the nearest multiple of 3; mantissa = value ÷ 10^exp.

Compact: Intl.NumberFormat with notation: 'compact'.

In Words: Indian numbering hierarchy, crores (10^7), lakhs (10^5), thousands (10^3), hundreds, tens, ones.

Frequently Asked Questions

A number formatter takes a raw numeric value and applies locale-specific rules for thousands grouping, decimal separators, currency symbols, and notation style. Different locales use different conventions, the Indian locale groups digits as 12,34,567 (using lakh and crore groupings) while the US locale produces 1,234,567 and the German locale uses 1.234.567 with a comma for decimals.
The US format (en-US) groups every three digits from the right: 1,000,000. The Indian format (en-IN) groups the first three digits from the right and then every two digits: 10,00,000 (ten lakh). This two-digit grouping reflects the Indian numbering system based on lakhs and crores rather than millions and billions.
Compact notation abbreviates large numbers to their short form, 1,200,000 becomes '1.2M' in en-US or '12L' in en-IN. It is useful for chart labels, dashboards, and anywhere space is limited. The number of significant digits shown can be controlled with the Decimal Places option.
Select Currency style, set Locale to 'Indian (en-IN)', and ensure the Currency Code field shows 'INR'. The output will be formatted as ₹12,34,567.00 with the Rupee symbol and Indian digit grouping. For a dedicated rupee formatter with words output, use the [Rupee Formatter](/rupee-formatter/).
For whole numbers, the formatter also outputs the number written out in words using the Indian numbering system, 1,00,000 becomes 'one lakh', 1,00,00,000 becomes 'one crore'. This is useful for writing cheques, legal documents, and financial reports that require amounts in words.
Engineering notation is similar to scientific notation but restricts the exponent to multiples of three (0, 3, 6, 9…) so that it corresponds to SI prefixes (kilo, mega, giga). For example, 47,000 is written as 47.000 × 10^3 rather than 4.7 × 10^4.
No. The formatting is done entirely in your browser using the browser's built-in Intl.NumberFormat API. Nothing is uploaded or stored.
Yes. Negative numbers are formatted with the locale-appropriate sign or brackets. For example, -1234.56 in en-US currency format produces -$1,234.56 or ($1,234.56) depending on the locale's convention.
Auto uses the default decimal precision for the chosen style. For decimal style it preserves the number's existing decimal places. For currency it uses the currency's standard fraction digits (2 for INR, USD, EUR; 0 for JPY). For compact and percent it uses up to 2 significant decimal digits.
Yes, select Percent style. Enter the raw value (e.g. 12.5 for 12.5%) and the formatter divides by 100 internally before applying the percent notation, producing '12.5%' in the output.
Scientific notation always places one non-zero digit before the decimal point (1.47 × 10^4). Engineering notation adjusts the exponent to the nearest multiple of three and may have 1–3 digits before the decimal (14.7 × 10^3). Engineering is preferred in electronics and physics where prefixes like kilo, mega, and milli correspond exactly to 10^3, 10^6, and 10^-3.
Also known as
format numbernumber formatter localeindian number formatthousands separator formattercurrency format number