alias numconv { var %o $remove($g($1,1,32),$chr(44)),%s $g(0 $+ %o,1,46),%p $len(%s) if %o = $null $z if %p > 67 || ($regex(%o,[^0-9\.]|\d*\.\d*\.\d*|^\.$)) $z Invalid if %s < 1 $z Zero while %p > 2 { dec %p 3 %s = $+($left(%s,%p),.,$p(%s,$calc($mid(%s,%p,0) -1))) } var %t 0,%w ThousandMBTrQuadrQuintSextSeptOctNonDecUnDuoTreQuattuorQuinSexSeptenOctoNovemVigint,%n qOneTwoThreeFourFiveSixSevenEightNine,%v qTwenThriForFifSixSevenEighNine,%m TenElevenTwelveThirFourFifSixSevenEighNine while $numtok(%s,46) > %t { inc %t %f = 0 %q = $int($g(%s,%t,46)) if (%q > 99) var %f $g(%n,$a($left(%q,1)),2) Hundred,%q $p(%q,2) %x = $iif(%q < 10,$g(%n,$a(%q),2),$iif(%q < 20,$g(%m,$a($p(%q,1)),2) $+ $iif(%q > 12,teen),$+($g(%v,$left(%q,1),2),ty,$iif($p(%q,1) > 0,- $+ $g(%n,$a($p(%q,1)),2))))) %s = $puttok(%s,$iif(%f,%f $iif(%x != q,%x),%x),%t,46) } while . isin %s { %i = $g(%s,1,46) %j = $count(%s,.) %s = $iif($p(%i,1) = q,$left(%i,-1),$+(%i $g(%w,%j,2),$iif(%j isnum 12-20,dec),$iif(%j > 1,illion))) $g(%s,2-,46) } $z %s } alias a $z $calc($1 +1) alias g $z $gettok($1,$2,$3) alias p $z $right($1,$2) alias z return return