当客户端'开票插件必须打印"用单词"进行金额时,我首先需要以编程方式拼写数字。在每张收据上,支票的样子听起来很微不足道,直到你达到 1,000,000,并且必须决定它是"一百万"还是"十万"或者直到像 2,015 这样的值变成"二十十五"在你的脑海中,当文档需要"两千十五。"写出的数字遵循严格的规则,在财务文档上弄错一个并不是什么小事。该收据功能就是为什么我构建了我可以信任的数字到单词的逻辑,现在它作为工具z。dev上的免费工具而存在。
TL;博士: 数词转换器在英语中拼写数字值 - 1,234 变为 "一千二百三十四。 "它处理基数(一、二、三)、序数(第一、第二、第三)、货币("一百美元五十美分")和小数逐位读取("三点一四")。 字数转换器 do 所有四个,将单词转换回数字,拼写整数精确到十亿,并完全在浏览器中运行。
拼写数字是特定于区域的,并且规则已编目: 统一码CLDR 携带国际化软件使用的数字拼写数据,而不是手写的英文规则。
本指南解释了英语用来命名数字的规则、人们最常错误的规则、货币和小数是如何处理的以及相反方向(单词回到数字)的工作原理。如果您曾经盯着标有 " 的表单字段,单词中的金额"并事后猜测自己,这就是要保留的参考。
为什么要将数字转换为单词?
最常见的原因是法律和财务文件。支票、发票、合同和本票打印两次金额:一次在数字中,一次在文字中。这些文字的存在是为了消除歧义并使篡改变得更加困难 - 改变数字很容易,更难令人信服地更改书面短语。按照长期惯例,如果数字和文字不同意,则将书面文字视为权威金额。这就是为什么该功能出现在如此多的计费软件中。
2个原因是可访问性和语音,屏幕阅读器和语音界面往往需要或产生数字的口语形式,而拼写数字是你如何精确控制一个值是如何大声朗读的,教育是第3个:教材在数字和单词之间不断转换,而儿童's工作表中充满了"用单词"写出这个数字练习。
然后是小小的实际时刻--手写表格,写一封正式的信,其中风格指南更喜欢拼写出一百个以下的数字,或者标记数字看起来不合适的东西。这项任务很常见,以至于 "数字到单词"每月都是一个稳定的搜索,这正是那种持久、真正有用的实用程序the toolz。dev web开发人员工具包 是围绕着建造的。
英文如何命名大数字?
English 从三位数组构建数字名称,从最大组向下读取,每个组拼写为三位数,然后给出一个比例名称。
音阶名称,在美国和当代英国使用的现代短音阶中,为:单位(无名称)、千、百万、十亿、万亿、千万亿、五十亿,然后通过六十亿、七十亿,再进一步。每一步乘以一千。因此,从右侧将一个数字切成三位数的组,每个组都被命名,然后将组连接起来。
1,234,567。将其拆分为几组:1 | 234 | 567。用其规模分别命名:"一百万,""二十三万四千,""五十六万七。"加入他们:"一百万二十三万四千五百六十七。"全为零的组完全跳过-1,000,045是"一百万四十五,"空千组无话可说。
3个一组内,规则为:百位得名加"百,"后两位依十位一格,二十以下数字有唯一名称(十一、十二、十三),二十以上复数值连字符:二十一、四十七、九十九。
以下是比例步骤映射到数字的方式:
| 號 | 数字 | 词 |
|---|---|---|
| 千万 | 1千 | 一千 |
| 百万 | 1,000,000 | 一百万 |
| 亿 | 1,000,000,000 | 十亿 |
| 万亿 | 1,000,000,000,000 | 一万亿 |
| 千万亿 | 1,000,000,000,000,000 | 一千万亿 |
的 字数转换器 命名组一直上升到十亿,并且因为它从数字字符串而不是数字值拼写整数,因此即使超过正常 JavaScript 数字在 9 千万亿左右失去精度的点,它仍然保持精确。最后一个细节在发票案件中很重要 - 您不希望出现法定金额的四舍五入错误。
应该有一个"和"以书面形式编号?
这是开始争论的问题,诚实的答案是这取决于方言。
在美式英语中,"和"一般在整数的部分之间省略。因此,2,500 是 "两千五百," 342 是 "三百四十二。 "在这种风格中,"和"是为小数点保留的 - "百分之一百五百"将具体表示小数。
在英式英语中,"和"通常插入最后两位数部分之前:"两千五百,"但是"三百四十二,"和"一千零一。 "两者都在自己的寄存器中正确。
器(converster)遵循美国惯例,在整数的各个部分之间产生不 " 和 ",这是软件更安全的默认值,因为它是明确的。读单词时 背 成一个数字,不过,它接受一个"和"无论有人可能在哪里键入它,所以"三百四十二"仍然解析到342。对输出严格,对输入宽松是这种工具的一个很好的一般规则。
货币金额和小数是如何处理的?
货币和小数点符号不同,这会让人们绊倒。
1个平面的小数,整个部分拼写正常,那么说"点"这个词,那么点之后的每个数字单独读出,那么3.14是"三点一四,"而0.05是"零点零五,"一次读一个数字- 而不是作为两位数- 是不含煳地给小数发声的标准方式。"三点十四"不是小数用仔细的英语怎么朗读。
Currency,格式完全改变,整个部分变成了美元计数,小数点后两位变成了美分:100.50是"一百美元五十美分"这是支票和发票所期望的格式,也是为什么转换器有专用的货币模式,单复数形式也调整了- 一美元一美分,但是两美元五十美分,当你在填写货币字段时打开货币模式,当你只想拼出数学值时就把它留下。
负数前缀为"负数,"匹配它们的书写和口语方式:-42 是"负四十二。"转换器先应用符号,然后拼写大小。
因为这些格式化选择完全改变了输出,所以选择正确的模式比原始数字更重要。这与 "小正确选择复合为可靠的结果 "贯穿始终的想法 开发人员生产力工具 方法 - 正确地设置模式,工具准确地执行其余操作。
基数和序数有什么区别?
Cardinal number 命名一个数量:一,二,三,四十二 序数命名一个位置在一个序列:第一,第二,第三,四十二 你需要序数写出的日期("六月二十一日"),排名,以及任何"哪个按顺序"上下文。
序数大多是通过在基数上加上"th"而形成的- 四变第四,六变第六,十变第十,但英语有一组不规则的形式你必须记住:一变第一,二变第二,三变第三,五变第五,八变第八,九变第九,十二变第十二。以"y"结尾的十个将"y"改为"ieth"-二十变第二十,四十变第四十。
复数只有最后一个词采用序数形式:二十一变二十一,一百变百分之一,一千变千分之一。转换器's序数模式恰好应用了这些规则,因此21给出"二十一",100给出"百分之一。"序数仅适用于整数;没有十进制的序数形式。
它可以将单词转换回数字吗?
是的,这个相反的方向比人们预期的更有用。粘贴"两百万四十万"并且该工具返回2,400,000。当您将手写记录数字化、解析口头输入或检查书面金额是否与其数字相符时,这一点很重要。
解析器理解基数高达四十亿,这是一个可选的"和"它可能出现的任何地方,"负"或"减去"对于符号,以及"点"后跟小数的个位数单词。因此"负一千零五点二五"变为-1005.25。它适用于标准措辞;故意不寻常的结构可能无法解析,这就是为什么该功能是尽力而为而不是完整的自然语言引擎。
反向自然与正向配对进行验证:拼写数字,然后将单词转换回来,并确认您落在相同的值上。那张往返支票是我如何在发票功能打印单张收据之前对其进行理智测试,并且它是背后的同一学科 罗马数字转换器的,它也通过往返来验证其输出。如果您使用其他基数中的数字,则 数值基数转换器 涵盖二进制、八进制和六进制。
你应该注意哪些错误?
"上方言不匹配最大的是"和"-把美式金额写入英国文档,反之亦然,在开始之前决定文档遵循哪种约定。
2个是混用十进制和货币格式。"三点一四"和"三美元十四美分"描述相同的数字,但意味着非常不同的东西。选择货币模式只为金钱。
第三个是尾随零小数。如果您输入 1.50,仔细拼写会给出 "一点五零,"读取您输入的每个数字 - 而不是 "一点五。 "是否想要尾随零取决于上下文;转换器拼写数字完全按照给定,以便您保持控制。
第四,反向,期望解析器处理读作对的年份 - "十九八十四"对于1984年。那是一个口语速记,而不是一个标准数字名称;类型"一千九百八十四"如果你需要1984。toolz。dev上的所有内容,包括这个工具,都运行客户端,所以你输入的任何内容都不会传输,这就是 隐私第一标准 整个站点的后面。
真实项目中数字到单词的显示在哪里?
多年来,同样的几个场景不断将此功能带回我的工作中,它们值得了解,因为它们都有自己的怪癖。
发票和计费系统 是经典案例。任何显示"的收据、发票或支票在单词"中金额都需要货币模式拼写,金额必须与数字完全匹配。这里的微妙陷阱是四舍五入:如果你的数字是100.50你想要"五十美分,"但是如果浮点计算让你剩下100.499999你必须四舍五入到小数点后两位 之前 spelling,或者你将打印"四十九美分",并且与总数不匹配拼写已经四舍五入的值,从不是一个原始计算的浮点。
法律和合同文件 出于相同的反篡改原因,用文字拼出持续时间、数量和货币金额。这里的风格倾向于形式化,一些司法管辖区期望英国的"和"惯例,因此在标准化之前确认文档系列使用的是哪个注册。合同还经常将单词与括号中的数字配对 - "一千(1,000)个单位" - 您可以通过运行转换器并删除旁边的数字来组装。
教育软件和工作表 2个方向不断转换,一个拼写练习生成一个数字,检查学生's书面答案,这正是单词对数字的方向;一个阅读练习做反。因为孩子's材料停留在小范围内,你很少在这里击中大数字边缘情况,但你确实需要干净的序数为"你完成哪个地方"风格问题。
本地化和语音接口 需要口语形式来控制值如何大声朗读,并翻译它。英语数字规则只是起点 - 其他语言的组和性别数字不同 - 但获得英语形式完全正确是您构建其余数字的基础。从数字字符串而不是浮动拼写的同一学科可以保持所有这些的大值准确,这就是可靠性 编码工具指南 认为工作流程中的每个实用程序都应该满足。
常见问题
你如何用单词写 1234?
1234是"一千二百三十四。"数字拆分成千组(一千)和单位组(二百三十四),连字符连接三十和四。在转换器中输入1234,可以看到它瞬间拼写出来。
如何将金额的金额转换为单词?
工具切换到货币模式并输入金额,例如 100.50,即可获得 "一百美元五十美分。 "货币模式将整个部分拼写为美元,将前两位小数拼写为美分,这是支票和发票预期的格式。
应该有一个"和"以书面形式编号?
在美式英语中,"和"通常被省略,因此 2500 是 "两千五百。 "在英式英语中,"和"经常出现在十之前,如 "两千五百一十。 "这个转换器遵循美式风格,没有"和,"但它接受"和"当将单词读回数字时。
小数是如何拼写的?
整部分拼写正常,然后说"点",后面跟着每个数字单独读,所以3.14变成"三点一四",0.05变成"零点零五"一次读一个数字是明确表示小数的标准方式。
基数和序数有什么区别?
数(Cardinal number)命名一个数量- 一、二、三- 而序数则命名一个序列中的位置- 第一、第二、第三。开启序数模式将21转换为"第二十一"或将100转换为"百分之一。"序数仅适用于整数。
这个工具可以拼写的最大数字是多少?
转换器将分组命名为分数,其中包含多达 36 位的整数。 因为它从数字字符串而不是数值中拼出整数,因此即使对于远大于标准数字类型的数字,结果也保持精确。
它可以将单词转换回数字吗?
Yes。type "二百万四十万"之类的短语,工具返回2400000,它理解到四十亿的基数,一个可选的"和,""负"或"减"符号,和"点"后跟小数的个位数。字对数解析是最好的努力,适用于标准措辞。
为什么我需要拼出数字?
用文字写一个数量可以消除歧义并使篡改变得更加困难,这就是为什么支票、合同和发票同时显示数字和文字的原因。 如果数字和书面金额有不同意,则书面文字通常被视为权威。



