Hmmm, I think the fixnum() routine has other problems in printf.icn
as well. Here's another improved version, that correctly
handles printf("%10.7r",-0.2e-5), for example:
------------------------------------------------
procedure fixnum(x, prec)
local int, frac, f1, f2, p10
/prec := 6
int := integer(x) | return image(x)
frac := image(abs(x - int))
if find("e", frac) then {
frac ?:= {
f1 := ((tab(upto('.')) & move(1))|"") &
f2 := tab(upto('e')) &
move(1) &
p10 := -integer(tab(0)) &
repl("0",p10-1) || f1 || f2
}
}
else
frac ?:= (tab(upto('.')) & move(1) & tab(0))
frac := left(frac, prec, "0")
if (int = 0) & (x < 0) then int := "-"||int
return int || "." || frac
end
--------------------------------------------
Someone should probably take a close look to see if this
introduces other problems, though!
--
Steve Wampler -- [EMAIL PROTECTED]
Quantum materiae materietur marmota monax si marmota
monax materiam possit materiari?
-------------------------------------------------------
This SF.NET email is sponsored by: eBay
Great deals on office technology -- on eBay now! Click here:
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
Unicon-group mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/unicon-group