Largest int from concatenated ints: Difference between revisions
Content added Content deleted
m (→simple integers: simplified the NORM function.) |
m (→exponentiated integers: simplified the NORM function.) |
||
Line 2,013: | Line 2,013: | ||
exit /*stick a fork in it, we're all done. */ |
exit /*stick a fork in it, we're all done. */ |
||
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
||
norm: arg i; #=word(z, i); er=' ***error*** '; |
norm: arg i; #=word(z, i); er=' ***error*** '; if left(#, 1)=="-" then #=substr(#, 2) |
||
if \datatype(#,'N') then do; say er 'number' # "isn't an number."; exit 13; end |
if \datatype(#,'N') then do; say er 'number' # "isn't an number."; exit 13; end |
||
else #= |
else #=# / 1 /*a #, so normalize it*/ |
||
if pos('E',#)>0 then do; parse var # mant "E" pow /*Has exponent? Expand*/ |
if pos('E',#)>0 then do; parse var # mant "E" pow /*Has exponent? Expand*/ |
||
numeric digits pow + length(mand) /*expand digs, adjust#*/ |
numeric digits pow + length(mand) /*expand digs, adjust#*/ |