fakemon/FakeMon/src/fmon/util/Fraction.scala

20 lines
545 B
Scala

package fmon.util
case class Fraction(val num : Int, val denom : Int) extends Ordered[Fraction] {
def *(f : Fraction) = Fraction(num * f.num, denom * f.denom)
def *(x : Int) : Int = x * num / denom
def unary_-() : Fraction = Fraction(-num, denom)
override def compare(f : Fraction) : Int = {
(num * f.denom) compare (f.num * denom)
}
def toDouble = 1.0 * num / denom
}
class IntFraction(val x : Int) extends AnyVal {
def %% = Fraction(x, 100)
def \\ (denom : Int) = Fraction(x, denom)
def frac = Fraction(x, 1)
}