我如何获得确切答案,而不仅仅是数字/计数
我可以得到一个数字列表的平均值,但是它只会加上总数并除以计数
(defn aver
[numbers]
(if (empty? numbers)
0
(/ (reduce + numbers) (count numbers)))
)
如果我要获取[5 10]列表的平均值,我将不会获得应为7.5的答案,我只会得到方程式,否则如何得到?
>(aver [5 10])
=> 15/2
答案 0 :(得分:0)
您可以使用bicdec
来精确表示该比率。例如
user=> (let [numbers [1 1 1 2]] (bigdec (/ (reduce + numbers) (count numbers))))
1.25M
答案 1 :(得分:0)
Clojure中的整数除法可为您提供有理数。如果要浮点数,则参数之一必须是浮点数。或者,您可以将结果传递到float
。
(float (aver [5 10]))
`