December 11, 200520 yr Previously in FM5 I used a series of case statements to transform numbers to words for numbers up to 9999. Is there an easier way in FM7 with the Let function? I guess I'm a bit burned out today and hope that I don't have to reinvent the wheel, if someone has already done it. Thanks
December 11, 200520 yr Here's one that was a CF by Don Wieland. There are others around but some require CF because they use recursion. I'd just give you the link to it, but I can't find it now on Brian Dunning's site. I think this calc can be shortened quite a bit but I haven't had time. Choose(Int(Mod(Dollars;10^12) / 10^11); ""; "One Hundred "; "Two Hundred "; "Three Hundred "; "Four Hundred "; "Five Hundred "; "Six Hundred "; "Seven Hundred "; "Eight Hundred "; "Nine Hundred ") & If(Int(Mod(Dollars;10^11) / 10^10) = 1; Choose(Int(Mod(Dollars;10^10) / 10^9); "Ten "; "Eleven "; "Twelve "; "Thirteen "; "Fourteen "; "Fifteen "; "Sixteen "; "Seventeen "; "Eighteen "; "Nineteen "); Choose(Int(Mod(Dollars;10^11) / 10^10); ""; ""; "Twenty "; "Thirty "; "Forty "; "Fifty "; "Sixty "; "Seventy "; "Eighty "; "Ninety ") & Choose(Int(Mod(Dollars;10^10) / 10^9); ""; "One "; "Two "; "Three "; "Four "; "Five "; "Six "; "Seven "; "Eight "; "Nine ")) & Case(Int(Mod(Dollars;10^12)/10^9) and Int(Mod(Dollars;10^9) / 10^3); "Billion, "; Int(Mod(Dollars;10^12)/10^9);"Billion ";"") & Choose(Int(Mod(Dollars;10^9) / 10^8); ""; "One Hundred "; "Two Hundred "; "Three Hundred "; "Four Hundred "; "Five Hundred "; "Six Hundred "; "Seven Hundred "; "Eight Hundred "; "Nine Hundred ") & If(Int(Mod(Dollars;10^8) / 10^7) = 1; Choose(Int(Mod(Dollars;10^7) / 10^6); "Ten "; "Eleven "; "Twelve "; "Thirteen "; "Fourteen "; "Fifteen "; "Sixteen "; "Seventeen "; "Eighteen "; "Nineteen "); Choose(Int(Mod(Dollars;10^8) / 10^7); ""; ""; "Twenty "; "Thirty "; "Forty "; "Fifty "; "Sixty "; "Seventy "; "Eighty "; "Ninety ") & Choose(Int(Mod(Dollars;10^7) / 10^6); ""; "One "; "Two "; "Three "; "Four "; "Five "; "Six "; "Seven "; "Eight "; "Nine ")) & Case(Int(Mod(Dollars;10^9)/10^6) and Int(Mod(Dollars;10^6) / 10^3); "Million, "; Int(Mod(Dollars;10^9)/10^6);"Million ";"") & Choose(Int(Mod(Dollars;10^6) / 10^5); ""; "One Hundred "; "Two Hundred "; "Three Hundred "; "Four Hundred "; "Five Hundred "; "Six Hundred "; "Seven Hundred "; "Eight Hundred "; "Nine Hundred ") & If(Int(Mod(Dollars;10^5) / 10^4) = 1; Choose(Int(Mod(Dollars;10^4) / 10^3); "Ten "; "Eleven "; "Twelve "; "Thirteen "; "Fourteen "; "Fifteen "; "Sixteen "; "Seventeen "; "Eighteen "; "Nineteen "); Choose(Int(Mod(Dollars;10^5) / 10^4); ""; ""; "Twenty "; "Thirty "; "Forty "; "Fifty "; "Sixty "; "Seventy "; "Eighty "; "Ninety ") & Choose(Int(Mod(Dollars;10^4) / 10^3); ""; "One "; "Two "; "Three "; "Four "; "Five "; "Six "; "Seven "; "Eight "; "Nine ")) & Case(Int(Mod(Dollars;10^6)/10^3) and Int(Mod(Dollars;10^3) / 10^0); "Thousand, "; Int(Mod(Dollars;10^6)/10^3);"Thousand ";"") & Choose(Int(Mod(Dollars;10^3) / 100); ""; "One Hundred "; "Two Hundred "; "Three Hundred "; "Four Hundred "; "Five Hundred "; "Six Hundred "; "Seven Hundred "; "Eight Hundred "; "Nine Hundred ") & If(Int(Mod(Dollars;100) / 10) = 1; Choose(Int(Mod(Dollars;10)); "Ten "; "Eleven "; "Twelve "; "Thirteen "; "Fourteen "; "Fifteen "; "Sixteen "; "Seventeen "; "Eighteen "; "Nineteen "); Choose(Int(Mod(Dollars;100) / 10); ""; ""; "Twenty "; "Thirty "; "Forty "; "Fifty "; "Sixty "; "Seventy "; "Eighty "; "Ninety ") & Choose(Int(Mod(Dollars;10)); ""; "One "; "Two "; "Three "; "Four "; "Five "; "Six "; "Seven "; "Eight "; "Nine ")) & Case(Int(Dollars) > 1; "Dollars"; Int(Dollars) = 1; "Dollar"; "") & If(Mod(Dollars; 1) and Int(Dollars);" and ";"") & If(Mod(Int(Dollars*10); 10) = 1; Choose(Mod(Int(Dollars*100); 10); "Ten "; "Eleven "; "Twelve "; "Thirteen "; "Fourteen "; "Fifteen "; "Sixteen "; "Seventeen "; "Eighteen "; "Nineteen "); Choose(Mod(Int(Dollars*10); 10); ""; ""; "Twenty "; "Thirty "; "Forty "; "Fifty "; "Sixty "; "Seventy "; "Eighty "; "Ninety ") & Choose(Mod(Int(Dollars*100); 10); ""; "One "; "Two "; "Three "; "Four "; "Five "; "Six "; "Seven "; "Eight "; "Nine ")) & Case(Mod(Dollars; 1) > .01; "cents"; Mod(Dollars; 1) = .01; "cent";"")
December 12, 200520 yr Author Thanks about 4 hours and 100 hair follicles worth, in other words, thanks a whole bunch. (Things are things because of mind as mind is mind because of things. These two are merely relative and both at source are emptiness.)
December 12, 200520 yr Boy have I had days like that!! What you said makes perfect sense to me. :shocked:
Create an account or sign in to comment