我正在尝试获取Clojure中数字列表的四舍五入版本。
例如(Math/round 10.5)
给了我11
作为答案,这很好。但是,我尝试使用'apply'-(apply Math/round (list 1.2 2.1 3.4))
的类似方法,这给了我一个错误。我期望将(1 2 3)
作为输出。
如何从数字列表中获取四舍五入的输出?
答案 0 :(得分:4)
使用map
。请注意,您必须将对Math/round
的调用包装到一个匿名函数中:有关原因,请参见this question。
(map #(Math/round %) (list 1.1 2.2 3.9)) ; '(1 2 4)
您的方法存在的问题(实际上并不是一个不好的猜测)是Java的Math/round
不是可变参数的:它只需要一个参数。以这种方式呼叫apply
与说
(Math/round 1.2 2.1 3.4)
哪些将无法编译。