在clojure中将数字舍入为n位小数

时间:2011-08-18 15:11:08

标签: clojure

当我这样做时,(/ 1.0 7.0),我只得到17位数:0.14285714285714285。我怎么能得到更多呢?

2 个答案:

答案 0 :(得分:14)

使用BigDecimal个数字和with-precision

(with-precision 50 (/ 1M 7))
=> 0.14285714285714285714285714285714285714285714285714M

答案 1 :(得分:10)

Clojure(以及几乎所有的lisps)都有比率类型,这样你就不会失去精确度。用比率进行所有计算,并在最后一分钟转换为double / float,以避免出现精度问题。