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

标签 clojure decimal jython

在 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/

相关文章:

clojure - 检查 Clojure 中是否为 nil

clojure - 多个有序数组的快速排序算法

php - MySQL & PHP 小数精度错误

javascript - 在 jQuery 中替换小数

java - 每个日志条目带有时间戳的 log4j

amazon-web-services - 使用 Amazonica 从 S3 获取对象时如何设置超时?

Clojure 映射转换(树中的子级到父级)

c# - 在 C# 中使用 System.Decimal 进行数学运算

websphere - 在 wsadmin 脚本中使用 jython 与 jacl 的优势(WebSphere Application Server 7+)

java - 仅使用默认库在 jython 中解码 json