有没有办法在lisp中控制浮点数的小数位数: 我希望我的输出是 89.83 而不是 89.833336 在 HyperSpec 中高低搜索合适的函数 - 找不到。
(defun average(&rest nums)
(float (/ (apply #'+ nums) (length nums))))
(average 99 97 78 88 99 78) --> 89.833336
您可以将浮点数乘以 100,四舍五入,然后除以 100,四舍五入到小数点后两位。
(defun round_to_two (num)
(/ (float (round (* num 100))) 100))
如果您只想删除多余的数字,请使用
floor
而不是 round
。