I was very surprised when I discovered (writing a bit more complicated program) that a program like
> import Numeric ( floatToDigits ) > print $ showFFloat Nothing 0.01 "" enters in to infinite loop. I found that (formatRealFloat FFFixed Nothing) do not like displaying numbers less than 0.1. For x = 0.01 we have e=-1 and ds="1". Function f loops down to 0, which will never be reached. I changed the function in hugs for my use. But since the problem is in a standard library I will have to make a workaround for may code to work elsewhere. Original and modified parts below. Original: FFFixed -> case decs of Nothing -> let f 0 s ds = mk0 s ++ "." ++ mk0 ds f n s "" = f (n-1) (s++"0") "" f n s (d:ds) = f (n-1) (s++[d]) ds mk0 "" = "0" mk0 s = s in f e "" ds Wish: FFFixed -> case decs of Nothing -> let f 0 s ds = mk0 s ++ "." ++ mk0 ds f n s "" = f (n-1) (s++"0") "" f n s (d:ds) = f (n-1) (s++[d]) ds g n ds = "0." ++ (replicate n '0') ++ ds mk0 "" = "0" mk0 s = s in if e >= 0 then f e "" ds else g (-e) ds I am rather new to Haskell so I do not know if the problem have been discussed already. -- =*= Lukasz Pankowski =*= _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell