這個工具能做什麼
這個工具會把數值轉換成它對應的英文文字拼寫。你可以從三種輸出格式中擇一:純數字(Words),直接把數字本身拼成英文;貨幣(Currency),產生含主、輔單位的金額片語(例如美元 dollars 與美分 cents);以及支票(Check),也就是銀行支票上常見的寫法——金額以文字拼出,分(cents)則以分子放在 100 之上的分數呈現。拼寫採用英語世界通用的「短級制(short scale)」,billion 為 \(10^9\)、trillion 為 \(10^{12}\)。貨幣名稱會帶有各國色彩,但底層的拼寫規則放諸四海皆同。
使用方式
在第一個輸入框中輸入數字,可以包含小數點、負號與千分位分隔符號。接著選擇要輸出的格式。若選擇「貨幣」模式,需挑選一種幣別;若選擇「支票」模式,則需挑選印在支票上的幣別名稱,並可選填一個結尾用字(exactly 或 only)。最後選擇英文大小寫:全部小寫、全部大寫、每字首大寫(Title Case),或句首大寫(Sentence case)。系統會即時更新結果,並把你選定的大小寫套用在整個字串的最後一步。
運算原理說明
整數部分會從右側起每三位數分成一組。每一組會先拼出百位,再拼出十位(與個位以連字號相連,例如 twenty-one),最後加上級別字(thousand、million、billion 等)。依照美式寫法,純數字內部不會插入「and」。轉換的核心邏輯可表示為 $$\text{words} = \text{intToWords}(\text{integer}) \; [+\; \text{"point"} + \text{digits}]$$ 其中整數部分透過分組與級別字串接而成:$$N=\sum_{i=0}^{k} g_i\cdot 1000^{i}\;\Rightarrow\;\text{join}(\text{group}_i + \text{scale}_i)$$ 在「純數字」模式中,小數點後的每個數字會在「point」之後逐位唸出,並保留前導的零,因此 .05 會變成「point zero five」。在「貨幣」與「支票」模式中,數值會四捨五入到整數的「分」,以避免浮點數誤差造成的偏差:$$\text{cents}=\operatorname{round}(x\times 100),\;\text{whole}=\lfloor \text{cents}/100\rfloor,\;\text{minor}=\text{cents}\bmod 100$$
實例演練
在「貨幣」模式下,幣別選 dollars、大小寫選 Title Case,輸入 1234.05。整數部分 1234 拼為「one thousand two hundred thirty-four」,分(cents)為 5 拼成「five」,組合後得到「one thousand two hundred thirty-four dollars and five cents」。其中分的計算為 \(\text{cents}=\operatorname{round}(0.05\times 100)=5\)。再套用 Title Case,最終結果為 「One Thousand Two Hundred Thirty-Four Dollars And Five Cents」。
常見問題
為什麼數字裡沒有「and」?美式英文在整數內部不使用「and」;它只用來分隔金額的主單位與輔單位。
沒有「分」的貨幣怎麼處理?日圓、人民幣、韓元與越南盾沒有輔幣單位,因此四捨五入後只會拼出整數金額。
輸入框留空會怎樣?空白會被視為零,並回傳「zero」。