diff options
author | Alex Osborne <ato@meshy.org> | 2010-04-07 20:41:54 +1000 |
---|---|---|
committer | Stuart Halloway <stu@thinkrelevance.com> | 2010-04-20 22:07:15 -0400 |
commit | e893050b513778e52ed8ef0cc0b5fc9f81b7bdc2 (patch) | |
tree | 836a98c01deaeacfffe49f974b22a240503d2f30 | |
parent | 8e916164ca3a57e5ce924ed153fe435356f8d4a0 (diff) |
Use bigint division when converting ratios to longs.
BigDecimal division is not precise enough for some large ratios yielding
incorrect results:
(long 10000000000000000000/3)
=> 3333333333333332992
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
-rw-r--r-- | test/clojure/test_clojure/numbers.clj | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/test/clojure/test_clojure/numbers.clj b/test/clojure/test_clojure/numbers.clj index 82ba0ec2..031e6257 100644 --- a/test/clojure/test_clojure/numbers.clj +++ b/test/clojure/test_clojure/numbers.clj @@ -440,4 +440,5 @@ Math/pow overflows to Infinity." (deftest test-ratios (is (= (denominator 1/2) 2)) (is (= (numerator 1/2) 1)) - (is (= (bigint (/ 100000000000000000000 3)) 33333333333333333333))) + (is (= (bigint (/ 100000000000000000000 3)) 33333333333333333333)) + (is (= (long 10000000000000000000/3) 3333333333333333333))) |