@qit.tools/number-to-words
Version:
This tiny library (🪶 1.4 KB) converts numbers to English words, supporting both general numeric values and monetary values with customizable currency and minor units.
3 lines (2 loc) • 1.44 kB
JavaScript
var skinTone=function(n){"use strict";return n.numberToWords=function(n,e){if(void 0===e&&(e={}),isNaN(n))throw new Error("Input is not a valid number");var t=["zero","one","two","three","four","five","six","seven","eight","nine"],r=["ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],o=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],i=["","thousand","million","billion","trillion"],u=function(n){var e="";return n>99&&(e+=t[Math.floor(n/100)]+" hundred",(n%=100)>0&&(e+=" ")),n>19?(e+=o[Math.floor(n/10)],(n%=10)>0&&(e+="-"+t[n])):n>9?e+=r[n-10]:n>0?e+=t[n]:""===e&&(e=t[0]),e},a=function(n){if(0===n)return t[0];if(n<0)return"minus "+a(-n);for(var e="",r=0;n>0;){var o=n%1e3;if(o>0){var f=u(o);r>0&&(f+=" "+i[r]),e=f+(e?" "+e:"")}n=Math.floor(n/1e3),r++}return e};if(void 0!==e.money)return function(n){var t,r,o=Math.floor(n),i=Math.round(100*(n-o)),u=a(o),f=1===o?e.money.currency[0]:e.money.currency[1],v="".concat(u," ").concat(f);if(i>0){var c=a(i);v+=" and ".concat(c).concat(e.money.minor?" "+(1===i?null===(t=e.money)||void 0===t?void 0:t.minor[0]:null===(r=e.money)||void 0===r?void 0:r.minor[1]):"")}return v}(n);var f=n.toString().split("."),v=f[0],c=f[1],l=a(parseInt(v,10));return void 0!==c&&(l+=" point "+function(n){return n.split("").map((function(n){return t[parseInt(n,10)]})).join(" ")}(c)),l},n}({});
//# sourceMappingURL=latest.min.js.map