Skip to main content
CheckTown
转换工具

数字转文字:将数字转换为多种语言的书面形式

发布于 阅读约 6 分钟
本文目录

什么是数字转文字?

数字转文字是将数字符号转换为其书面(拼写)形式的过程。例如,1234 在英语中会写成“one thousand two hundred thirty-four”。这种转换在法律文件、金融票据以及无障碍场景中至关重要——凡是需要以文字形式清晰无歧义地表达数字的地方,都会用到它。

这个概念看似简单,但各语言的规则却差异巨大。英语遵循相对一致的分组规则,而法语、德语以及许多斯拉夫语系语言都有各自独特的语法、性数一致和构词规则,这使得多语言数字转换成为一项出乎意料复杂的任务。

数字转文字的工作原理

将数字转换为文字的基本算法是:把数字按三位一组(个、千、百万、十亿等)拆分,逐组独立转换,再用相应的量级词将它们组合起来。

  • 对数字分组——从右往左将数字拆分成三位一组的数块。以 1,234,567 为例:各组为 1(百万)、234(千)、567(个)
  • 逐组转换——每个三位组都独立转换:先是百位,再是十位和个位。567 转换为“Five hundred sixty-seven”
  • 添加量级词——追加相应的量级:million、thousand 等。然后拼接起来:“one million two hundred thirty-four thousand five hundred sixty-seven”

英语中十位的处理较为特殊,因为 11 至 19 有各自独特的单词(eleven、twelve、thirteen……),而不遵循常规规律。20 至 99 的数字则用连字符将十位词与个位词结合(twenty-one、thirty-five)。

免费试用 —— 无需注册

将数字转换为文字 →

特定语言的规则

数字转文字在各语言之间差异显著。适用于英语的规则,一旦套用到其他语言便很快失效。

  • 英语——分组相对简单,可选择性地使用“and”(英式英语为“one hundred and twenty-three”,美式英语为“one hundred twenty-three”)
  • 法语——70(soixante-dix = 六十加十)、80(quatre-vingts = 四个二十)和 90(quatre-vingt-dix = 四个二十加十)有独特规则。比利时和瑞士法语则改用 septante、huitante/octante、nonante
  • 德语——复合词从后往前读:234 是“zweihundertvierunddreißig”(两百—四—和—三十)。整个数字可以合成一个单一的复合词
  • 斯拉夫语系语言——数字需要与所计数名词在语法格上保持一致,且词形会随数字是 1、2–4 还是 5 及以上而变化。波兰语的规则最为复杂,有多种变格模式

常见用途

在许多专业和技术场景中都需要将数字转换为文字。

  • 支票书写——金额必须以文字书写,以防止篡改和欺诈(“Pay to the order of: One Thousand Two Hundred Dollars”)
  • 法律文件——合同、法庭文书和法律协议会将货币金额和数量拼写成文字,以消除歧义
  • 无障碍与屏幕阅读器——屏幕阅读器需要数字转文字功能,才能自然地读出日期、金额和度量数值
  • 发票生成——专业发票通常会同时以数字和文字形式列出总金额,以确保清晰无误
  • 财务报告——年报和正式财务报表可能要求按照文体指南规则将数字拼写成文字(通常小于十的数字写成文字)

处理特殊情况

除了简单的整数之外,数字转文字还必须处理若干增加复杂度的特殊情况。

  • 小数——通常表示为整数部分加“point”,然后逐位读出各个数字:3.14 变为“three point one four”。用于货币时则为:“three dollars and fourteen cents”
  • 负数——在文字形式前加上“negative”或“minus”:-42 变为“negative forty-two”或“minus forty-two”
  • 极大的数——量级词可延伸至 trillion、quadrillion、quintillion 乃至更大。在英语国家使用的短级差系统中,该体系对高达 10^63(vigintillion)的数字都有明确定义
  • 序数——转换为序数形式(first、second、third、twenty-first)遵循与基数不同的规则,且因语言而异

常见问题

序数在不同语言中如何变化?

序数的构成方式差异很大。英语在大多数数字后加“-th”(fourth、fifth),并有不规则形式(first、second、third)。法语使用后缀“-ieme”(deuxieme、troisieme),first 则用“premier”。德语在 2–19 后加“-te”,在 20 及以上后加“-ste”(zweite、zwanzigste)。斯拉夫语系语言像形容词一样对序数变格,并保持性和格的一致。

小数在不同语言中如何用文字表达?

英语使用“point”后接逐个数字(3.14 = “three point one four”)或分数形式(“three and fourteen hundredths”)。许多欧洲语言以逗号作为小数分隔符,并说“comma”:法语中 3,14 = “trois virgule quatorze”。货币金额通常表达方式不同:“three euros and fourteen cents”。

能用文字表达的最大数字是多少?

理论上没有上限——你总能再添加一个量级词。实际上,短级差系统(英语中使用)用基于拉丁语的命名惯例为高达 10^63(vigintillion)乃至更大的数字命名。长级差系统(许多欧洲语言使用)的命名方式不同——长级差中的 billion 是 10^12,而非 10^9。大多数转换工具至少支持到 10^15(quadrillion/billiard)的数字。

相关工具