Skip to content

Commit

Permalink
Make readDecimal behave like Prelude.read @Double/@Float
Browse files Browse the repository at this point in the history
  • Loading branch information
aske committed Jul 31, 2020
1 parent e35ff13 commit 0a46db1
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/Data/ByteString/Lex/Fractional.hs
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,12 @@ module Data.ByteString.Lex.Fractional

import Data.ByteString (ByteString)
import qualified Data.ByteString as BS
import qualified Data.ByteString.Unsafe as BSU
import Data.Word (Word8)
import qualified Data.ByteString.Lex.Integral as I
import Data.ByteString.Lex.Integral (readSigned)
import qualified Data.ByteString.Lex.Integral as I
import Data.ByteString.Lex.Internal
import qualified Data.ByteString.Unsafe as BSU
import Data.Ratio ((%))
import Data.Word (Word8)

----------------------------------------------------------------
----------------------------------------------------------------
Expand Down Expand Up @@ -102,7 +103,7 @@ readDecimal xs =
Nothing -> justPair (fromInteger whole) ys
Just (part, zs) ->
let base = 10 ^ (BS.length ys - 1 - BS.length zs)
frac = fromInteger whole + (fromInteger part / base)
frac = fromRational (fromInteger whole + part % base)
in justPair frac zs


Expand Down

0 comments on commit 0a46db1

Please sign in to comment.