在 clojure 或 jython 中: 说我有一个号码 4.21312312312312 我怎样才能得到一个只有前两位小数的数字。对于上面的示例,它将返回 4.21。 谢谢
最佳答案
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
关于clojure - 如何使用 clojure 或 jython 修剪数字的小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5072492/