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

pan*_*mer 11 clojure

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

Jus*_*mer 14

使用BigDecimal数字和with-precision:

(with-precision 50 (/ 1M 7))
=> 0.14285714285714285714285714285714285714285714285714M
Run Code Online (Sandbox Code Playgroud)


Ham*_*aya 10

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