数字转文字
这个工具把数字写成英文单词:输入 1234,它给出 one thousand two hundred and thirty-four。切到货币模式,1250.75 变成 one thousand two hundred and fifty dollars and seventy-five cents;切到序数模式,21 变成 twenty-first。小数部分逐位朗读,所以 3.14159 是 three point one four one five nine。
示例
关于数字转文字
数字转文字按照英语的说法把一个数字写成单词。在输入框里键入数字,用文字表示下方那一行会随每次按键重写,没有单独的转换按钮。工具把整数部分按三位一组切开,再用英语短制的名称逐组命名:thousand、million、billion、trillion、quadrillion、quintillion。计算直接在数位上用精确的大整数运算完成,因此 21 位的输入也不会出错。
输入框上方有三个模式。基数给出普通数字:1234 变成 one thousand two hundred and thirty-four,0 变成 zero,-273 变成 negative two hundred and seventy-three。序数给出次序,并套用英语的不规则形式,12 是 twelfth,40 是 fortieth,105 是 one hundred and fifth。货币把数值当成钱来读,可选四种 ISO 4217 货币,USD、EUR、GBP 或 JPY,并配上正确的辅币单位:1234.56 英镑读作 one thousand two hundred and thirty-four pounds and fifty-six pence,2.01 读作 two pounds and one penny。
输出始终是英文,不会给出中文大写数字,也不会给出壹贰叁的写法。措辞沿用英式习惯,百位后面保留 and(one hundred and one),美式写法通常省略它。只有短制计数,没有 lakh、crore 的分组,也没有卢比的说法。序数模式忽略小数点后的内容,货币模式只读前两位小数并直接截断,整数部分最多 21 位,超过时输入框会提示不支持大于 999,999,999,999,999,999,999 的数字。
全部换算都在你的浏览器里完成,输入的数字不会发送到任何服务器。复制按钮把小写文本放进剪贴板,可直接粘到支票金额行、合同条款或表格单元格里;示例那一排会载入八个样例数字,方便你看清零、负数和十二位数分别怎么写。
使用场景
如何使用
在卡片顶部那一排里选择模式:普通数字选基数,twenty-first 这样的次序选序数,钱数选货币。
在货币模式下,从随之出现的下拉框中选择币种:$ USD - 美元、€ EUR - 欧元、£ GBP - 英镑 或 ¥ JPY - 日元。
把数字键入中间那个大输入框,它的提示文字是 123456.78。逗号和货币符号会被自动去掉,下面那行灰色小字显示格式化后的数字。
在下方的用文字表示面板里读结果:它随每次按键更新,不需要提交。
按复制把文本放进剪贴板。按钮会变绿,并显示已复制!两秒钟。
也可以点示例下面的按钮 - 42、1234、1000000、999999999、-273、3.14159、123456789012、0 - 载入一个样例数字,看看它是怎么写的。
专业提示
- 输出保留英式的 and:101 写成 one hundred and one。如果公司规范用美式,把这个 and 删掉写成 one hundred one,但要保留分隔美元与美分的那个 and。
- 可以直接从表格里粘贴:除数字、负号和小数点以外的字符都会被去掉。不过小数点必须是英文句点,逗号会被当成千位分隔符一起删掉。
- 货币模式下整数金额不会带辅币:12.00 给出 twelve dollars,而不是 twelve dollars and zero cents。表格若要求写满,请自己补上 and 00/100。
- 序数模式只看整数部分:3.7 给出 third,不是 three point seventh。小数有意义时请切回基数模式。
- 示例那一排是最快看到边界情况的方式:0 给出 zero,-273 给出 negative two hundred and seventy-three,3.14159 给出 three point one four one five nine。
故障排除
我输入了内容,用文字表示面板却一直显示输入一个数字。
小数点前至少要有一位数字:单独输入 .5 什么也不会出来,请写 0.5。字母在读取数字之前就被去掉了,所以像 abc 这样的输入同样让面板保持空白。
输入框下方的灰色小字和我输入的数字不一样。
那一行用普通的 JavaScript 数字格式化,只精确到大约 15 位,所以 999999999999999999999 会显示成 1,000,000,000,000,000,000,000。下面的英文单词用精确的大整数运算得出,始终是对的。
出现红色提示:不支持大于 999,999,999,999,999,999,999 的数字。
整数部分最多 21 位。把数字缩短,或者拆成两段分别转换;小数点后面的位数不计入这个上限。
货币模式少了一分钱:1234.567 给出 fifty-six cents。
只有前两位小数会变成辅币,而且是截断而不是四舍五入。输入前先把金额四舍五入到两位,例如 1234.57,文字就能和账面对上。
复制出来的文本全是小写,页面上却显示成大写开头。
蓝色面板套用了 CSS 的 capitalize 样式,所以显示为 One Thousand Two Hundred And Thirty-Four。剪贴板里是真正的输出 one thousand two hundred and thirty-four;请按表单的要求在文档里自行调整大小写。
常见问题解答
在输入框里键入数字,单词会随着输入出现,没有转换按钮。1234 返回 one thousand two hundred and thirty-four。普通数字选基数,次序选序数(21 变成 twenty-first),钱数选货币(1234.56 变成 one thousand two hundred and thirty-four dollars and fifty-six cents),然后按复制。
只输出英文单词,无论页面是什么语言。1234 得到 one thousand two hundred and thirty-four,不会得到一千二百三十四,也不会得到壹仟贰佰叁拾肆。需要中文大写金额时,请另找专门的中文大写工具;这里适合填写英文支票、英文发票和英文合同。
Excel 没有内置函数。微软支持文章《Convert numbers into words》写明 Excel “doesn’t have a default function that displays numbers as English words in a worksheet”,并给出 VBA 宏作为替代:把 SpellNumber 代码粘贴到模块中,用 =SpellNumber(A1) 调用,22.50 就会显示为 Twenty-Two Dollars and Fifty Cents。该代码只在一个工作簿里有效;只有几个数字时,在这里转换再粘回单元格更省事。
序数词表示次序而不是数量:first、second、third、twentieth。把模式那一排切到序数,工具会套用不规则形式(one 变 first,two 变 second,three 变 third,five 变 fifth,eight 变 eighth,nine 变 ninth,twelve 变 twelfth),把结尾的 -y 换成 -ieth,所以 40 给出 fortieth,其余加 -th。105 给出 one hundred and fifth。
11 是 eleven,12 是 twelve,两个都是不规则形式。英语要到 13(thirteen)才开始有规律,20 以后十位和个位用连字符相连,例如 twenty-one、thirty-four。在序数模式下,11 给出 eleventh,12 给出 twelfth,而不是 twelveth。
选货币模式,选好币种,输入金额,再把这一行抄到支票的文字栏。1250.75 给出 one thousand two hundred and fifty dollars and seventy-five cents;美国支票通常填成 One thousand two hundred fifty and 75/100。在美国,康奈尔大学法律信息研究所发布的 UCC 第 3-114 条规定,文字与数字不一致时以文字为准。
基数模式下小数点后的数字逐位朗读:3.14159 是 three point one four one five nine,1.05 是 one point zero five。货币模式下前两位小数变成辅币,1234.56 结尾是 and fifty-six cents,英镑的 2.01 是 two pounds and one penny,而整数金额 12.00 直接读作 twelve dollars。
只在句子或表单需要时才大写,银行并没有强制规定。工具复制出来的是全小写文本 one thousand two hundred and thirty-four,尽管本页面板把它显示成首字母大写,那只是 CSS 样式。像写普通句子那样把第一个词大写即可,其余按你的文档模板处理。
不支持。工具只用短制计数,所以 12345678 写成 twelve million three hundred and forty-five thousand six hundred and seventy-eight,而不是 one crore twenty-three lakh forty-five thousand six hundred and seventy-eight。货币模式只提供 USD、EUR、GBP 和 JPY,也没有卢比和派士的写法。
取决于你遵循的写作规范,各家划的界线并不一致:多数规范在正文里把小数目写成单词,大数目改用阿拉伯数字。合同和支票是另一回事,那里金额被刻意写两遍,一遍数字一遍文字,好让两者互相核对。