当我在clojure中划分数字时,我得到一小部分,我如何得到小数?

unj*_*nj2 69 math floating-point numbers clojure

当我这样做时(/ 411 125),我不会用十进制来得到它.我怎么做?

Bri*_*per 85

user> (float (/ 411 125))
3.288
user> (double (/ 411 125))
3.288
Run Code Online (Sandbox Code Playgroud)


Jac*_*ski 30

user=> (clojure-version)
"1.4.0"

user=> (doc quot)
-------------------------
clojure.core/quot
([num div])
  quot[ient] of dividing numerator by denominator.
nil

user=> (quot 411 125)
3
Run Code Online (Sandbox Code Playgroud)


Jon*_*erg 14

记录所示,整数除法产生有理数.尝试

(/ 411.0 125)
Run Code Online (Sandbox Code Playgroud)


ire*_*ses 7

如果您使用浮动股息,您将获得小数答案.

(/ 22.0 7) -> 3.142857142857143
Run Code Online (Sandbox Code Playgroud)

还有(unchecked-remainder xy)函数可用.


小智 6

即使这样也会奏效:

(/ 22. 7) => 3.142857142857143
Run Code Online (Sandbox Code Playgroud)

  • 您还应该包括一些关于您的代码为何起作用以及原始代码中存在什么问题的解释。 (2认同)