Number Grouping Styles by Locale: Indian, Western, and East Asian

Explore how number digit grouping varies across locales. Learn about the Indian numbering system (lakhs/crores), Western thousands grouping, East Asian grouping, and how to control grouping in Intl.NumberFormat.

Intl.NumberFormat

Detailed Explanation

Number Grouping Conventions Around the World

While most developers are familiar with the Western convention of grouping digits in threes (1,234,567), other numbering systems use different grouping patterns.

Western Grouping (Groups of 3)

new Intl.NumberFormat('en-US').format(12345678);
// "12,345,678"

new Intl.NumberFormat('de-DE').format(12345678);
// "12.345.678"

new Intl.NumberFormat('fr-FR').format(12345678);
// "12 345 678"

Indian Numbering System (Lakhs and Crores)

In the Indian numbering system, the first group is 3 digits, then groups of 2:

new Intl.NumberFormat('en-IN').format(12345678);
// "1,23,45,678"

new Intl.NumberFormat('hi-IN').format(12345678);
// "1,23,45,678"

This represents: 1 crore, 23 lakh, 45 thousand, 678.

Western Indian
10,000 10,000
100,000 1,00,000 (1 lakh)
1,000,000 10,00,000 (10 lakh)
10,000,000 1,00,00,000 (1 crore)

East Asian Grouping

Chinese, Japanese, and Korean traditionally group by 10,000 (万):

new Intl.NumberFormat('zh-CN').format(12345678);
// "12,345,678" (uses Western grouping in standard format)

// But compact notation uses 10,000-based grouping:
new Intl.NumberFormat('zh-CN', { notation: 'compact' })
  .format(12345678);  // "1235万"

new Intl.NumberFormat('ja-JP', { notation: 'compact' })
  .format(12345678);  // "1235万"

Controlling Grouping

// No grouping
new Intl.NumberFormat('en-US', { useGrouping: false })
  .format(12345678);  // "12345678"

// Minimum grouping (at least 2 digits in leading group)
new Intl.NumberFormat('en-US', { useGrouping: 'min2' })
  .format(1234);    // "1234" (leading group has only 1 digit)
new Intl.NumberFormat('en-US', { useGrouping: 'min2' })
  .format(12345);   // "12,345"

Separator Characters

Locale Thousands Decimal
en-US , (comma) . (period)
de-DE . (period) , (comma)
fr-FR (narrow space) , (comma)
hi-IN , (comma) . (period)
ar-SA ٬ ٫

Use Case

Correct number grouping is critical for financial applications serving Indian users (lakhs and crores are deeply ingrained in Indian culture), dashboards displaying large numbers, and any application where misreading a number could have consequences. An Indian banking app must show account balances as '12,34,567.00' not '1,234,567.00'. Understanding grouping conventions prevents confusion when users from different regions read the same numbers.

Try It — Locale String Tester

Open full tool