summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libraries/base/Data/Fixed.hs7
1 files changed, 4 insertions, 3 deletions
diff --git a/libraries/base/Data/Fixed.hs b/libraries/base/Data/Fixed.hs
index b946d5edde..b3af208469 100644
--- a/libraries/base/Data/Fixed.hs
+++ b/libraries/base/Data/Fixed.hs
@@ -158,9 +158,10 @@ instance (HasResolution a) => Read (Fixed a) where
convertFixed :: forall a . HasResolution a => Lexeme -> ReadPrec (Fixed a)
convertFixed (Number n)
- | Just (i, f) <- numberToFixed r n =
- return (fromInteger i + (fromInteger f / (10 ^ r)))
- where r = resolution (undefined :: Fixed a)
+ | Just (i, f) <- numberToFixed e n =
+ return (fromInteger i + (fromInteger f / fromInteger r))
+ where r = resolution (undefined :: Fixed a) -- = 10^e
+ e = round (logBase 10 (fromInteger r) :: Double)
convertFixed _ = pfail
data E0 = E0