From ff5197de5c79ac94f6abf0983bce1838c3aa2ab5 Mon Sep 17 00:00:00 2001 From: VegOwOtenks Date: Sun, 15 Sep 2024 17:06:40 +0200 Subject: [PATCH] fix pointing number parsing --- src/Lib.hs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Lib.hs b/src/Lib.hs index 172cced..e244e22 100644 --- a/src/Lib.hs +++ b/src/Lib.hs @@ -64,13 +64,14 @@ constantInteger = try (do constantRational :: Parser Rational constantRational = do - natural <- m_natural - _ <- char '.' - decimal <- m_natural + natural <- m_natural + _ <- char '.' + decimal_digits <- many digit + let decimal = read decimal_digits :: Integer let natural_length = length . show $ natural - let decimal_length = length . show $ decimal + let decimal_length = length decimal_digits let numerator = natural * (10 ^ decimal_length) + decimal - let denominator = 10 ^ (decimal_length + natural_length - 2) + let denominator = 10 ^ (decimal_length + natural_length - 1) return (numerator % denominator) {-