Esempio n. 1
0
  public static Rational valueOf(BigDecimal x) {
    BigInteger num = x.unscaledValue();
    BigInteger den = BigInteger.ONE;

    int scale = x.scale();
    while (scale > 0) {
      den = den.multiply(BigInteger.TEN);
      --scale;
    }
    while (scale < 0) {
      num = num.multiply(BigInteger.TEN);
      ++scale;
    }

    Rational rv = new Rational(num, den);
    rv.reduce();
    return rv;
  }