如何使用clojure或jython修剪数字的小数?

Jul*_*iaz 8 jython decimal clojure

在clojure或jython:说我有一个数字4.21312312312312我怎么能得到一个只有前2位小数的数字.对于上面的例子,它将返回4.21.谢谢

mik*_*era 10

Clojure在clojure.contrib.math中有一个圆函数 - 假设你想要Clojure可以处理的所有不同可能数值类型的正确行为,最好使用这个函数.

在这种情况下,假设您希望将结果作为任意精度的BigDecimal,一种简单的方法是构建一个小帮助函数,如下所示:

(use 'clojure.contrib.math)

(defn round-places [number decimals]
  (let [factor (expt 10 decimals)]
    (bigdec (/ (round (* factor number)) factor))))

(round-places 4.21312312312312 2)
=> 4.21M   
Run Code Online (Sandbox Code Playgroud)


Jul*_*iaz 5

我想我在进一步研究后得到了这个

(format "%.2f"  4.21312312312312)
Run Code Online (Sandbox Code Playgroud)

应该返回4.21

  • 这是数字的字符串表示形式,而不是数字本身. (7认同)