(This is a repost from my abandoned tumblr blog; dated 2016-11-17)
A client requested that we spell out numbers on their website in order to clarify some financial totals. I initially planned on using the ColdFusion NumberAsString UDF from 2002. After reviewing the results, I thought it was worth a unit test comparison to review the results against ICU4J (java).
In the end, I decided to use ICU4J because:
- ICU4J converts text using 180+ locales. Numbers are translated to each language (Chinese, Thai, French, Spanish, etc)
- UDF adds title case capitalization to all number strings. (if needed, you can do this separately.)
- UDF doesn't support negative values and will throw a CF error.
- UDF doesn't use hyphenized numbers ("Forty Three" versus "forty-three")
- UDF uses "cardinal-verbose" format w/o hyphened numbers (Adds the word "and" where commas should be.)
- UDF decimal places are treated as positive-type number words (instead of using "point four three" for ".43")
123 = "one hundred twenty-three"
100001 = "one hundred thousand one"
9 = "nine"
64578.25 = "sixty-four thousand five hundred seventy-eight point two five"
0.333 = "zero point three three three"
Here's the CFML source code:
https://gist.github.com/JamoCA/cd343524e417f382d5c706954e52dfaf
Top comments (0)