Change rationals.toInt behaviour

This commit is contained in:
def 2015-01-12 23:44:50 +01:00
commit a85b6fd3fe

View file

@ -23,12 +23,12 @@ proc toRational*(x: SomeInteger): Rational =
proc toFloat*(x: Rational): float = proc toFloat*(x: Rational): float =
## Convert a rational number `x` to a float. ## Convert a rational number `x` to a float.
float(x.num) / float(x.den) x.num / x.den
proc toInt*(x: Rational): int = proc toInt*(x: Rational): int =
## Convert a rational number `x` to an int. Conversion rounds if `x` does not ## Convert a rational number `x` to an int. Conversion rounds down if `x`
## contain an integer value. ## does not contain an integer value.
round(toFloat(x)) x.num div x.den
proc reduce*(x: var Rational) = proc reduce*(x: var Rational) =
## Reduce rational `x`. ## Reduce rational `x`.