alias numconv { var %i 1,%s,%p,%b 3,,%v $chr(32),%f,%k illion*,%x = one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,eighteen,nineteen,twenty,thirty,forty,fifty,sixty,seventy,eighty,ninety,$null,thousand, $+ $replace($+(mi,%k,b,%k,tr,%k,quadr,%k,quint,%k,sext,%k,sept,%k,oct,%k,non,%k,dec,%k,undec,%k,duodec,%k,tredec,%k,quarttuordedc,%k,quindec,%k,sexdec,%k,septendec,%k,octodec,%k,novemdec,%k,vigint,%k),*,$chr(44)) if (+ isin $1 || - isin $1 || $len($remove($1,$chr(44))) > 66) { return Invalid } if . isin $1 return Zero tokenize 32 $remove($gettok($1,1,46),$chr(44)) while (%i <= 19) { hadd -m g %i $gettok(%x,%i,44) inc %i } while (%i < 100) { hadd g %i $+($gettok(%x,$calc($mid(%i,1,1) + 18),44),$iif($mid(%i,2,1) > 0,-,$null),$iif($mid(%i,2,1) > 0,$gettok(%x,$mid(%i,2,1),44),$null)) inc %i } while (%i <= 999) { hadd g %i $+($gettok(%x,$mid(%i,1,1),44),%v,hundred,%v,$hget(g,$int($mid(%i,2,2)))) inc %i } %i = 0 %p = $len($1) while ($abs(%i) < $len($1)) { dec %i 3 inc %f if ($abs(%i) > %p) { %i = $+(-,%p) %b = $calc(%p % 3) } %s = $+($hget(g,$calc($mid($1,%i,%b))),%v,$eval($gettok(%x,$calc(%f +27),44),2),%v,%s) } return %s }