这是个简单的.但无论如何,我认为在这里回答这个问题是一个好主意,以便更快,更容易地参考.
这个操作:
(/ 3 2)
Run Code Online (Sandbox Code Playgroud)
得出这个:
3/2
Run Code Online (Sandbox Code Playgroud)
我需要一个函数来向上舍入,这将产生2和另一个向下舍入,这将产生1.
cfr*_*ick 47
你可以用java互操作(Math /(floor | ceil).例如:
user=> (int (Math/floor (/ 3 2)))
1
user=> (int (Math/ceil (/ 3 2)))
2
Run Code Online (Sandbox Code Playgroud)
Art*_*ldt 27
把它扔到所需的类型
(int 3/2)
=> 1
(double 3/2)
=> 1.5
(float 3/2)
=> 1.5
Run Code Online (Sandbox Code Playgroud)
然后把它包装在一个电话Math.round等.
user> (Math/round (double 3/2))
2
user> (Math/floor (double 3/2))
1.0
user> (Math/ceil (double 3/2))
2.0
Run Code Online (Sandbox Code Playgroud)
您也可以使用精度函数进行舍入
=> (with-precision 10 :rounding FLOOR (/ 1 3M))
0.3333333333M
=> (with-precision 10 :rounding CEILING (/ 1 3M))
0.3333333334M
Run Code Online (Sandbox Code Playgroud)
https://clojuredocs.org/clojure.core/with-precision
| 归档时间: |
|
| 查看次数: |
17705 次 |
| 最近记录: |