数字转英文

把阿拉伯数字写成英文单词,基数词、序数词和美元金额一起给出,可在美式与英式之间切换。

hundred 与十位之间不加 and:one hundred twenty-three;thousand 之后也不加。整数最多 15 位,小数不限位数但金额只取两位;千分位逗号、全角数字和负号都能识别,金额不满一元时按英文习惯只读分。

已读出整数部分和小数点后 2 位

使用说明

英文数字的最小组件是 1 到 999,读法可以完整背下来:百位用「几 hundred」,十位与个位合成一个词,21 到 99 之间用连字符,例如 three hundred forty-two。往上按三位一级分组,每级后面挂一个单位,从低到高是 thousand、million、billion、trillion。一级一级往下写,得到的就是 thirty-four million five hundred six thousand seven hundred eighty-nine 这样的结果,中间不需要额外的连接词。

单位本身有两套量级口径,这是英文数字里最容易读错的地方。short scale 下每一级按 10 的 3 次方递进,billion 是十亿;long scale 下每级按 10 的 6 次方递进,billion 成了一万亿。美制一直用 short scale,英制在二十世纪后期也基本改用了这一套,所以现在说 billion 通常就是十亿。本工具的英式开关只改变 and 的位置,不改变单位量级,页面上给出的单位表也是 short scale。

连字符和 and 是两个各自独立的细节。连字符只管 21 到 99 这段两位数,写在整个数字里也一样,所以 one hundred twenty-one 只有末尾带连字符。and 则是英美差异:英式在百位与十位之间加 and,另外当一个数由多个分组组成、且最后那一组不足一百时,也在它前面补 and,于是 1001 读 one thousand and one;但如果最后一组达到一百以上,像 1100 读 one thousand one hundred,就不加 and。

序数词的变化集中在几个词上:one 变 first、two 变 second、three 变 third 是不规则的;five 到 fifth、eight 到 eighth、nine 到 ninth、twelve 到 twelfth 要在词尾改拼写,其中 ninth 要去掉 nine 的 e,eighth 只加 h。复合序数词只把最后一个词变成序数,前面的词照抄,所以二十一是 twenty-first、一百零三是 one hundred third。纯数字序数的后缀规则和中文语境下的习惯一样,1st、2nd、3rd,但 11 到 13 一律用 th。

金额读法在数字读法之上又加了几条:美元和分之间用 and 连接,单复数跟着数值走,一元是 one dollar、一元一分是 one dollar and one cent,票据上还在末尾加 only 封口。整数金额按习惯补整的说法可以用 only 表达,所以 100 读 one hundred dollars only;不满一元时不念美元部分,只念分位,0.5 读 fifty cents。整数的上限是 15 位,因为再往上就要用到 quadrillion 这些单位,而那个量级已经超过双精度浮点数的精确范围,本工具宁可报错也不给不可靠的结果。要中文读法用数字转中文,票据上的大写金额用人民币大写金额,罗马数字用罗马数字转换。

常见问题

美式和英式的差别具体在哪?

只差 and 的位置。英式在 hundred 和后面的十位之间加 and,写成 one hundred and one;当一个数有多个三位分组、且最后一组不足一百时,也要在它前面补 and,例如 one thousand and one。美式这两处都不加,写成 one hundred one 和 one thousand one。两种都是规范写法,选哪个取决于读者习惯。

billion 到底是十亿还是一万亿?

本工具里 billion 一律是十亿,也就是 10 的 9 次方,这是 short scale 的口径,美式一直用它,现代英式也已经普遍改用这一套。历史上英式用的是 long scale,那时 billion 指 10 的 12 次方,也就是一万亿,美国的一万亿在那套体系里叫 trillion。要看一万亿,用这一页输出的 trillion 就对了。

什么时候要写连字符?

只有 21 到 99 之间、十位与个位都不是零的组合才写,例如 twenty-one、ninety-nine。整十数不加(twenty),百位以上也只在最后那个两位数内部加:one hundred twenty-one 里只有 twenty-one 带连字符,hundred 和 thousand 这类单位词后面不加。

序数词里哪些拼写会变?

不规则的主要有 first、second、third,以及 fifth、eighth、ninth、twelfth 这几个要在词尾改拼写的,其余大多是直接加 th。复合序数词只把最后一个词变成序数,前面的照抄:twenty-first、one hundred twenty-third、one thousandth。纯数字序数则是 1st、2nd、3rd,但 11、12、13 一律用 th,所以是 11th、12th、13th,而 21 又是 21st。

美元金额里的 and 和 only 是什么讲究?

美元和分之间用 and 连接,写成 one hundred twenty-three dollars and forty-five cents,这是票据和正式文书的习惯。末尾的 only 起封口作用,意思是「整」,防止有人在后面添字改金额。这是英文票据的写法,和中文票据写「整」是一个道理。

a dollar 和 one dollar 有什么区别?

意思一样,语体不同。口语里单数金额常用 a dollar、a hundred dollars,正式文书和票据上则一律写 one dollar、one hundred dollars,因为 one 在排版和手写里都不容易被添改成别的数字。本工具按正式写法输出 one,不做 a 的替换。

小数和负数怎么读?

小数不按数值读,而是把小数点读作 point,后面一位一位念:3.14 是 three point one four,不读 three point fourteen。负号有两种读法,negative 更正式、minus 更口语,可以在上面切换。注意序数词只对整数部分有意义,带小数的输入不会给出序数词。

为什么整数最多 15 位?

英文数字是三位一级,单位用到 thousand、million、billion、trillion 为止,一共五个分组,所以整数上限是 15 位。再往上要引入 quadrillion、quintillion 这些更少见的单位,而且那些量级已经远超日常使用和双精度浮点数的精确范围,硬转会得到末尾数字不可靠的结果,所以这里直接报错。需要中文读法或票据金额写法可以看另外两个工具。

相关:数字转中文人民币大写金额罗马数字转换