aboutsummaryrefslogtreecommitdiff
path: root/lib/math/rational.ex
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-11-10 13:27:11 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2025-11-10 13:27:11 +0100
commit037094a928653ed27f1f9d5497f637af1c5380e0 (patch)
tree477930f59cbf2db32705f16a1af779e0563c6080 /lib/math/rational.ex
parent96299cbf09bdb75e4d6c6849c9c4c3ce000a6fc5 (diff)
fix(parser): not parsing right number with 0 after dot
Diffstat (limited to 'lib/math/rational.ex')
-rw-r--r--lib/math/rational.ex8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/math/rational.ex b/lib/math/rational.ex
index 018f69b..c3d94c9 100644
--- a/lib/math/rational.ex
+++ b/lib/math/rational.ex
@@ -132,6 +132,10 @@ defmodule ElixirMathParser.Math.Rational do
div(numerator, %Rational{numerator: denominator, denominator: 1})
end
+ def newRaw(numerator, denominator) when is_integer(numerator) and is_integer(denominator) do
+ %Rational{numerator: numerator, denominator: denominator}
+ end
+
@doc """
Returns the absolute version of the given number (which might be an integer, float or Rational).
@@ -424,9 +428,9 @@ defmodule ElixirMathParser.Math.Rational do
# Simplifies the Rational to its most basic form.
# Which might result in an integer.
# Ensures that a `-` is only kept in the numerator.
- defp simplify(rational)
+ def simplify(rational)
- defp simplify(%Rational{numerator: numerator, denominator: denominator}) do
+ def simplify(%Rational{numerator: numerator, denominator: denominator}) do
gcdiv = gcd(numerator, denominator)
denominator = Kernel.div(denominator, gcdiv)