Clojure - 如果需要,可以舍入到小数

时间:2015-10-16 20:31:54

标签: clojure floating-point rounding

首先,clojure-rounding-to-decimal-places的副本。

这几乎是同一个问题,但有一个转折点:我想将值舍入为N个小数的最大,但如果不需要则不添加它们。

4位小数的示例:

0.0 => 0.0
0.1 => 0.1
8.6667 => 8.6667
3.33333333 => 3.3333
4.66666666 => 4.6667

1 个答案:

答案 0 :(得分:2)

听起来我们主要关注的是制作数字,当用十进制表示并绘制到屏幕时,它们将打印出正确的数字位数,而不必将这些数字传递到可以打印的任何地方从。这对我来说是一个假设,所以如果我回答错误的问题我会道歉。

user> (map (fn [x] {x (Double. (format "%.4f" x))})
                    [0.0 
                     0.1 
                     8.6667 
                     3.33333333 
                     4.66666666])
 ({0.0        0.0} 
  {0.1        0.1} 
  {8.6667     8.6667} 
  {3.33333333 3.3333} 
  {4.66666666 4.6667})

这使用格式来确保它们的格式正确。您应该通过数学方式解决这个问题来保存字符串创建和解析。如果速度很关键,那么如果你非常小心的话可能会更快。