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

时间:2009-10-20 18:32:31

标签: math clojure floating-point numbers

当我做(/ 411 125)时,我不会用十进制来表示。我该怎么做?

6 个答案:

答案 0 :(得分:84)

user> (float (/ 411 125))
3.288
user> (double (/ 411 125))
3.288

答案 1 :(得分:29)

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

答案 2 :(得分:14)

作为documented,整数除法产生有理数。尝试

(/ 411.0 125)

答案 3 :(得分:7)

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

(/ 22.0 7) -> 3.142857142857143

还有(unchecked-remainder x y)功能。

答案 4 :(得分:6)

即使这样也可以:

(/ 22. 7) => 3.142857142857143

答案 5 :(得分:1)

(float 411/125)是另一种变体,如果您直接给出数字,如果您只是将REPL用作计算器就是这种情况。不幸的是,这比Jonathan Feinberg和ire_and_curses的解决方案要长几个字符。 ;)