diff options
author | Rich Hickey <richhickey@gmail.com> | 2010-06-16 09:18:22 -0400 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2010-06-16 09:18:22 -0400 |
commit | e4a76e058ceed9b152ffd00b3f83e2800207bc25 (patch) | |
tree | fa277d6397427e7a24bcbcbcac123d0d26930dd2 | |
parent | 0deef3ebaac4b897c1b5f4cbb583665cc2d7383b (diff) |
return doubles from quotient/remainder on doubles
-rw-r--r-- | src/jvm/clojure/lang/Numbers.java | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/jvm/clojure/lang/Numbers.java b/src/jvm/clojure/lang/Numbers.java index 722791fd..6f4f16bf 100644 --- a/src/jvm/clojure/lang/Numbers.java +++ b/src/jvm/clojure/lang/Numbers.java @@ -147,28 +147,28 @@ static public Number remainder(Number x, Number y){ return ops(x).combine(yops).remainder(x, y); } -static Number quotient(double n, double d){ +static double quotient(double n, double d){ double q = n / d; if(q <= Long.MAX_VALUE && q >= Long.MIN_VALUE) { - return box((long) q); + return (double)(long) q; } else { //bigint quotient - return new BigDecimal(q).toBigInteger(); + return new BigDecimal(q).toBigInteger().doubleValue(); } } -static Number remainder(double n, double d){ +static double remainder(double n, double d){ double q = n / d; if(q <= Long.MAX_VALUE && q >= Long.MIN_VALUE) { - return Double.valueOf((n - ((int) q) * d)); + return (n - ((long) q) * d); } else { //bigint quotient Number bq = new BigDecimal(q).toBigInteger(); - return Double.valueOf((n - bq.doubleValue() * d)); + return (n - bq.doubleValue() * d); } } |