跳到主要内容

YouCalc · 参考研究 · 最近审阅 2026-07-01

世界各地如何书写数字

写下 1234567.89 并交给全世界,它就不再只表示一个意思。在美国,它写作 1,234,567.89;而在德国,同样的金额却写作 1.234.567,89——于是孤零零的“1.000”,在纽约是“1”,在柏林却是“一千”。这就是“1.000问题”。到了印度,逗号的位置又变了:1,00,000 并不是把十万写得古怪——它是一个 lakh,按 2-2-3 分组。下文将同一个数字,按 {count} 种语言环境中每一种独特的惯例呈现,并逐一追溯到定义它的 Unicode 标准——这样你就能读懂或写出外国数字,而不会犯下1000倍的错误。

数字 1234567.89 以七种不同方式呈现:1,234,567.89(美国/英国);1.234.567,89(德国,即“1.000问题”);1 234 567,89(法国,空格分组);瑞士式撇号分组写法;12,34,567.89(印度式 lakh 分组);带有阿拉伯分隔符的阿拉伯-印度数字(埃及);以及 SI 窄空格推荐写法。
One amount, seven conventions. Numbers are real Intl.NumberFormat output. · YouCalc · CC BY 4.0

同一个数字,各种写法

同一个数值 1234567.89,依据不同惯例被分组和标点。请留意小数点、分组分隔符、分组模式,以及数字本身的变化。

1,234,567.89

小数点为句点,分组用逗号

小数点是句点 · 用逗号分组 · 统一三位一组

United States (English) · United Kingdom (English) · Canada (English) · Australia (English) · New Zealand (English) · +13 more

1.234.567,89

小数点为逗号,分组用句点

“1.000问题” · 小数点是逗号 · 用句点分组

Germany (German) · Spain (Spanish) · Italy (Italian) · Netherlands (Dutch) · Brazil (Portuguese) · +10 more

1 234 567,89

空格分组,逗号小数点

小数点是逗号 · 用空格分组(不换行空格或窄空格)

Austria (German) · France (French) · Portugal (Portuguese) · Sweden (Swedish) · Finland (Finnish) · +9 more

1’234’567.89

瑞士式撇号分组

小数点是句点 · 用撇号分组

Switzerland (German) · Switzerland (Italian)

12,34,567.89

印度式 lakh 分组(2-2-3)

12,34,567 而非 1,234,567 · 小数点是句点

India (English) · India (Hindi) · India (Tamil)

১২,৩৪,৫৬৭.৮৯

印度式分组,本地数字

用孟加拉数字或天城文数字书写的 lakh 分组

India (Bengali) · Bangladesh (Bengali)

١٬٢٣٤٬٥٦٧٫٨٩

阿拉伯-印度数字与符号

数字 ٠–٩ · 阿拉伯小数分隔符 ٫ · 阿拉伯千位分隔符 ٬

Egypt (Arabic) · Saudi Arabia (Arabic) · Iran (Persian)

1 234 567.89

国际单位制(SI)推荐写法(标准)

窄空格分组 · 小数点为句点或逗号

国际 — BIPM SI Brochure · NIST SP 811

方法。 本页上的每一个数字都是通过调用 Intl.NumberFormat(<locale>) 来格式化 1234567.89 生成的,然后通过 formatToParts 读取其中的小数点、分组分隔符和分组模式——这与浏览器和操作系统所使用的 Unicode CLDR 数据完全相同。分组模式依据整数段的长度进行分类(西式统一的三位一组,对比印度式的 2-2-3 lakh 分组),数字系统则来自格式化器解析后的选项(resolved options)。没有任何数字是手工输入的。

完整参考表

按惯例分类排序。“示例”一列是该语言环境对 1234567.89 的呈现方式;“货币”一列展示的是当地货币符号的位置。

完整参考表
语言环境 国家/语言 示例(1234567.89) 小数点 分组分隔符 分组方式 货币
en-US United States (English) 1,234,567.89 . point . , comma , Western (uniform 3) prefix $1,234,567.89
en-GB United Kingdom (English) 1,234,567.89 . point . , comma , Western (uniform 3) prefix £1,234,567.89
en-CA Canada (English) 1,234,567.89 . point . , comma , Western (uniform 3) prefix $1,234,567.89
en-AU Australia (English) 1,234,567.89 . point . , comma , Western (uniform 3) prefix $1,234,567.89
en-NZ New Zealand (English) 1,234,567.89 . point . , comma , Western (uniform 3) prefix $1,234,567.89
en-IE Ireland (English) 1,234,567.89 . point . , comma , Western (uniform 3) prefix €1,234,567.89
ja-JP Japan (Japanese) 1,234,567.89 . point . , comma , Western (uniform 3) prefix ¥1,234,568
ko-KR South Korea (Korean) 1,234,567.89 . point . , comma , Western (uniform 3) prefix ₩1,234,568
zh-CN China (Simplified Chinese) 1,234,567.89 . point . , comma , Western (uniform 3) prefix ¥1,234,567.89
zh-TW Taiwan (Traditional Chinese) 1,234,567.89 . point . , comma , Western (uniform 3) prefix $1,234,567.89
zh-HK Hong Kong (Chinese) 1,234,567.89 . point . , comma , Western (uniform 3) prefix HK$1,234,567.89
th-TH Thailand (Thai) 1,234,567.89 . point . , comma , Western (uniform 3) prefix ฿1,234,567.89
ms-MY Malaysia (Malay) 1,234,567.89 . point . , comma , Western (uniform 3) prefix + space RM 1,234,567.89
he-IL Israel (Hebrew) 1,234,567.89 . point . , comma , Western (uniform 3) space + suffix ‏1,234,567.89 ‏₪
de-DE Germany (German) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix 1.234.567,89 €
de-AT Austria (German) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) prefix + space € 1.234.567,89
es-ES Spain (Spanish) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix 1.234.567,89 €
it-IT Italy (Italian) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix 1.234.567,89 €
nl-NL Netherlands (Dutch) 1.234.567,89 , comma , . point . Western (uniform 3) prefix + space € 1.234.567,89
pt-BR Brazil (Portuguese) 1.234.567,89 , comma , . point . Western (uniform 3) prefix + space R$ 1.234.567,89
da-DK Denmark (Danish) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix 1.234.567,89 kr.
el-GR Greece (Greek) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix 1.234.567,89 €
id-ID Indonesia (Indonesian) 1.234.567,89 , comma , . point . Western (uniform 3) prefix + space Rp 1.234.567,89
tr-TR Turkey (Turkish) 1.234.567,89 , comma , . point . Western (uniform 3) prefix ₺1.234.567,89
vi-VN Vietnam (Vietnamese) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix 1.234.568 ₫
fr-FR France (French) 1 234 567,89 , comma , narrow no-break space (U+202F) Western (uniform 3) space + suffix 1 234 567,89 €
pt-PT Portugal (Portuguese) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 €
sv-SE Sweden (Swedish) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 kr
fi-FI Finland (Finnish) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 €
nb-NO Norway (Norwegian) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 kr
pl-PL Poland (Polish) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 zł
cs-CZ Czechia (Czech) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 Kč
hu-HU Hungary (Hungarian) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 Ft
ru-RU Russia (Russian) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 ₽
uk-UA Ukraine (Ukrainian) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) space + suffix 1 234 567,89 грн
ro-RO Romania (Romanian) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix 1.234.567,89 RON
de-CH Switzerland (German) 1’234’567.89 . point . apostrophe ’ (U+2019) Western (uniform 3) prefix + space CHF 1’234’567.89
fr-CH Switzerland (French) 1 234 567,89 , comma , narrow no-break space (U+202F) Western (uniform 3) space + suffix 1 234 567.89 CHF
it-CH Switzerland (Italian) 1’234’567.89 . point . apostrophe ’ (U+2019) Western (uniform 3) prefix + space CHF 1’234’567.89
en-IN India (English) 12,34,567.89 . point . , comma , Indian (2-2-3 lakh) prefix ₹12,34,567.89
hi-IN India (Hindi) 12,34,567.89 . point . , comma , Indian (2-2-3 lakh) prefix ₹12,34,567.89
bn-IN India (Bengali) ১২,৩৪,৫৬৭.৮৯ . point . , comma , Indian (2-2-3 lakh) prefix ₹১২,৩৪,৫৬৭.৮৯
ta-IN India (Tamil) 12,34,567.89 . point . , comma , Indian (2-2-3 lakh) prefix ₹12,34,567.89
ur-PK Pakistan (Urdu) 1,234,567.89 . point . , comma , Western (uniform 3) prefix + space Rs 1,234,567.89
ne-NP Nepal (Nepali) 1,234,567.89 . point . , comma , Western (uniform 3) prefix + space NPR 1,234,567.89
bn-BD Bangladesh (Bengali) ১২,৩৪,৫৬৭.৮৯ . point . , comma , Indian (2-2-3 lakh) suffix ১২,৩৪,৫৬৭.৮৯৳
ar-EG Egypt (Arabic) ١٬٢٣٤٬٥٦٧٫٨٩ ٫ Arabic decimal ٫ (U+066B) ٬ Arabic thousands ٬ (U+066C) Western (uniform 3) space + suffix ‏١٬٢٣٤٬٥٦٧٫٨٩ ج.م.‏
ar-SA Saudi Arabia (Arabic) ١٬٢٣٤٬٥٦٧٫٨٩ ٫ Arabic decimal ٫ (U+066B) ٬ Arabic thousands ٬ (U+066C) Western (uniform 3) space + suffix ‏١٬٢٣٤٬٥٦٧٫٨٩ ر.س.‏
ar-AE United Arab Emirates (Arabic) 1,234,567.89 . point . , comma , Western (uniform 3) space + suffix ‏1,234,567.89 د.إ.‏
ar-MA Morocco (Arabic) 1.234.567,89 , comma , . point . Western (uniform 3) space + suffix ‏1.234.567,89 د.م.‏
fa-IR Iran (Persian) ۱٬۲۳۴٬۵۶۷٫۸۹ ٫ Arabic decimal ٫ (U+066B) ٬ Arabic thousands ٬ (U+066C) Western (uniform 3) prefix + space ‎ریال ۱٬۲۳۴٬۵۶۸
es-MX Mexico (Spanish) 1,234,567.89 . point . , comma , Western (uniform 3) prefix $1,234,567.89
es-AR Argentina (Spanish) 1.234.567,89 , comma , . point . Western (uniform 3) prefix + space $ 1.234.567,89
es-CO Colombia (Spanish) 1.234.567,89 , comma , . point . Western (uniform 3) prefix + space $ 1.234.567,89
es-CL Chile (Spanish) 1.234.567,89 , comma , . point . Western (uniform 3) prefix $1.234.568
af-ZA South Africa (Afrikaans) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) prefix + space R 1 234 567,89
en-ZA South Africa (English) 1 234 567,89 , comma , no-break space (U+00A0) Western (uniform 3) prefix + space R 1 234 567,89

所有示例均为同一金额 1234567.89,由 Intl.NumberFormat(Unicode CLDR / ICU)渲染生成。“␣”表示空格分隔符(不换行空格或窄不换行空格)。

为什么相同的数字代表不同的金额

“1.000问题”

英语使用句点表示小数,用逗号对千位分组;而欧洲大陆和拉丁美洲的大多数地区则恰恰相反——用逗号表示小数,用句点(或空格)对千位分组。因此,1.000 对美国人来说是 1,对德国人来说却是 1000;而 1,5 在巴黎意味着“一点五”,在芝加哥却像是打错了字。把一张欧洲发票当作美国发票来读(反之亦然),就是典型的1000倍错误。

印度的 lakh 与 crore(2-2-3 分组)

南亚地区的数字并不是统一按三位分组。前三位之后,数字改为两位两位分组:十万写作 1,00,000(一个 lakh),一亿则是 12,34,56,789——也就是 12 crore、34 lakh……这些逗号看起来眼熟,位置却陌生,这正是这类金额容易被读错的原因。

瑞士的撇号

瑞士用撇号对千位分组:1’234’567.89。这种写法毫不含糊——没有人会把 1'000 误认为小数——这也是它得以延续至今的原因之一。

阿拉伯分隔符与数字

使用阿拉伯文字的语言环境可能会以本地形式呈现数字和分隔符:数字 ٠١٢٣٤٥٦٧٨٩、阿拉伯小数分隔符 ٫(U+066B)和阿拉伯千位分隔符 ٬(U+066C)。于是 1234567.89 就变成了 ١٬٢٣٤٬٥٦٧٫٨٩。波斯语(伊朗)使用扩展的阿拉伯-印度数字 ۰۱۲۳۴۵۶۷۸۹。请注意,一些阿拉伯语地区(例如阿联酋)默认使用西方数字——同一文字体系内的惯例也会有所不同。

标准的答案:SI 分组

为了让数据在机器之间和跨国界都保持安全无歧义,BIPM SI Brochure 和 NIST SP 811 推荐使用一种单一的中立惯例:小数符号为句点或逗号,数字每三位用一个窄空格分组——绝不使用逗号或句点,因为这两者在某些地方本就代表“小数点”。因此,毫无歧义的写法是 1 234 567.89(对于四位数,该空格可以省略)。这是面向科学和技术写作的建议,并非日常语言环境都遵循的规则。

参考来源

如何客观地看待这些数据

各语言环境的格式来自通过 Intl.NumberFormat 获取的 Unicode CLDR 数据——与你的手机和浏览器所使用的数据相同——因此它们反映的是常见的标准用法,而非法律规定。现实中的实践在一国之内也存在差异(许多阿拉伯语地区在日常生活中使用西方数字;手写和各家风格也不尽相同),而且 CLDR 会定期修订,因此某个语言环境的默认格式可能会在不同版本之间发生变化。SI 的窄空格写法是为清晰起见提出的建议,并非普遍通行的做法。请把本页当作理解某种格式含义的可靠指南;当精确性至关重要时,应以不含歧义的方式明确写出金额。

数据源自通过 Intl.NumberFormat 获取的 Unicode CLDR,涵盖 57 种语言环境,归纳为 9 种不同惯例。SI 分组依据 BIPM SI Brochure 和 NIST SP 811。自制参考资料,CC BY 4.0。