Thanks! On Wed, Jun 17, 2020 at 1:08 AM Keith Culotta <keithculo...@icloud.com> wrote:
> This was written for v6 a while back. The app is still being used believe > it or not. > > ===================================== > // METHOD: DtoS - Dollar to String - kc 3/1/00 > // INPUT: real - dollar to convert to string > // was -> $0:=String($1;"$###,###,###,##0.00") > > String(200;$0) > _O_C_INTEGER($i;$sec) > C_REAL($partVal) > > _O_ARRAY STRING(12;mag1;20) // this should be be declared elsewhere > _O_ARRAY STRING(12;mag2;8) > _O_ARRAY STRING(12;mag3;4) > mag1{0}:="" > mag1{1}:=" One" > mag1{2}:=" Two" > mag1{3}:=" Three" > mag1{4}:=" Four" > mag1{5}:=" Five" > mag1{6}:=" Six" > mag1{7}:=" Seven" > mag1{8}:=" Eight" > mag1{9}:=" Nine" > mag1{10}:=" Ten" > mag1{11}:=" Eleven" > mag1{12}:=" Twelve" > mag1{13}:=" Thirteen" > mag1{14}:=" Fourteen" > mag1{15}:=" Fifteen" > mag1{16}:=" Sixteen" > mag1{17}:=" Seventeen" > mag1{18}:=" Eighteen" > mag1{19}:=" Nineteen" > > mag2{1}:=" Twenty" > mag2{2}:=" Thirty" > mag2{3}:=" Forty" > mag2{4}:=" Fifty" > mag2{5}:=" Sixty" > mag2{6}:=" Seventy" > mag2{7}:=" Eighty" > mag2{8}:=" Ninety" > > mag3{1}:=" " > mag3{2}:=" Thousand" > mag3{3}:=" Million" > mag3{4}:=" Billion" > > $theNum:=$1 // Num(Request("a Number")) > $Target:=String(Trunc($theNum;0)) > $TLength:=Length($Target) > $sec:=1 > $theOutput:="" > While (Length($Target)>0) > $partVal:=Num(Substring($target;Length($target)-3+1;3);$sec) > If ($partVal=0) > $theOutput:=" "+$theOutput > Else > $theOutput:=DtoS_Get3 > (Substring($target;Length($target)-3+1;3);$sec)+mag3{$sec}+$theOutput > End if > $target:=Substring($Target;1;Length($target)-3) > $sec:=$sec+1 > End while > $cents:=String(Round(Round($theNum;2)-Trunc($theNum;0);2);"#.00") > $cents:=Substring($cents;2;2) > $theOutput:=$theOutput+"Dollars and "+$cents+"/100" > > > $theOutput:=Replace string($theOutput;" ";" ") // extra spaces may > appear for "000" > $0:=Replace string($theOutput;" ";" ") > > > ===================================== > // METHOD: DtoS_Get3 - return words for a 3 digit section xxx,XXX,xxx > // INPUT1: string - 0..999 > // INPUT2: integer - what 3 digit section are we in ...3,2,1 > > _O_C_STRING(3;$1) > _O_C_STRING(200;$0) > _O_C_INTEGER($numValueR2;$numValueR1;$numValueM2;$2) > > While (Length($1)<3) > $1:="0"+$1 > End while > > $numValueR2:=Num(Substring($1;2;2)) > $numValueR1:=Num(Substring($1;3;1)) > $numValueM2:=Num(Substring($1;2;1)) > $numValueL1:=Num(Substring($1;1;1)) > > If ($numValueR2<20) // handle the rightmost 2 digits > $0:=mag1{$numValueR2} > Else > $0:=mag2{$numValueM2-1}+mag1{$numValueR1} > End if > > If ($numValueL1>0) > $0:=mag1{$numValueL1}+" Hundred"+$0 > End if > > Keith - CDI > > > On Jun 16, 2020, at 4:48 AM, David Adams via 4D_Tech < > 4d_tech@lists.4d.com> wrote: > > > > I'm looking for code that converts something like this: > > > > 24120.10 into something like this: > > > > twenty-four thousand, one hundred and twenty point one > > > > The hope is to emulate Python's num2words. > > > > I figure anyone who had to write a check printing feature years ago might > > have something along these lines, and may be willing to share. I'm not > > trying to print checks, that's just an example. > > > > Definitely after native code, hoping to avoid a PHP call. > > > > For reference, Dani Beaubien sent me a link to an old post from Garri > Ogata > > with something like the code I'm asking about: > > > > > > > http://4d.1045681.n5.nabble.com/Number-To-Text-native-4D-code-td4864780.html > > > > I also found what looks like a version of that code here: > > > > https://kb.4d.com/assetid=76423 > > > > This version has a bunch of extra ) characters, but runs once you fix > them. > > However, this code does *not* include decimals. I'd like to keep the > > decimals part. > > > > Thanks for any help. > > ********************************************************************** > > 4D Internet Users Group (4D iNUG) > > New Forum: https://discuss.4D.com > > Archive: http://lists.4d.com/archives.html > > Options: https://lists.4d.com/mailman/options/4d_tech > > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > > ********************************************************************** > > ********************************************************************** 4D Internet Users Group (4D iNUG) New Forum: https://discuss.4D.com Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **********************************************************************