计算规则说明
整数部分从右往左每三位一组进行拆分。每一组先念出百位,再念出十位(与个位之间用连字符连接,例如 twenty-one),随后加上对应的级差词(thousand、million、billion 等)。其拼接方式可表示为:
$$N=\sum_{i=0}^{k} g_i\cdot 1000^{i}\;\Rightarrow\;\text{join}(\text{group}_i + \text{scale}_i)$$
按照美式(US)习惯,纯数字内部不会插入「and」。在普通单词模式下,小数点后的每一位都会在单词「point」之后逐位读出,并保留前导零,因此 .05 会读作「point zero five」:
$$\text{words} = \text{intToWords}(\text{integer}) \; [+\; \text{"point"} + \text{digits}]$$
在货币和支票模式下,数值会四舍五入到整数分,以避免浮点数误差:
$$\text{cents}=\operatorname{round}(x\times 100),\;\text{whole}=\lfloor \text{cents}/100\rfloor,\;\text{minor}=\text{cents}\bmod 100$$