summaryrefslogtreecommitdiff
path: root/src/jvm
diff options
context:
space:
mode:
authorAlex Osborne <ato@meshy.org>2010-04-07 20:09:42 +1000
committerStuart Halloway <stu@thinkrelevance.com>2010-04-20 22:07:15 -0400
commit8e916164ca3a57e5ce924ed153fe435356f8d4a0 (patch)
treee086818fe2a44097ee4806aadeea559419402c93 /src/jvm
parent640b3cdf1012e08e1a9f6225911aab2776cfe846 (diff)
Don't truncate large ratios when converting to bigint. Fixes #290.
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
Diffstat (limited to 'src/jvm')
-rw-r--r--src/jvm/clojure/lang/Ratio.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/Ratio.java b/src/jvm/clojure/lang/Ratio.java
index 6822cb36..6c7a9bb6 100644
--- a/src/jvm/clojure/lang/Ratio.java
+++ b/src/jvm/clojure/lang/Ratio.java
@@ -45,7 +45,7 @@ public int intValue(){
}
public long longValue(){
- return (long) doubleValue();
+ return bigIntegerValue().longValue();
}
public float floatValue(){
@@ -67,6 +67,10 @@ public BigDecimal decimalValue(MathContext mc){
return numerator.divide(denominator, mc);
}
+public BigInteger bigIntegerValue(){
+ return numerator.divide(denominator);
+}
+
public int compareTo(Object o){
Number other = (Number)o;
return Numbers.compare(this, other);