Когда я делаю (/ 411 125)
, я не получаю его с точки зрения десятичной. Как это сделать?
Когда я делю числа в clojure, я получаю дробь, как я могу получить десятичное число?
Ответ 1
user> (float (/ 411 125))
3.288
user> (double (/ 411 125))
3.288
Ответ 2
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
Ответ 3
Как документировано, целочисленное деление дает рациональные числа. Попробуйте
(/ 411.0 125)
Ответ 4
Если вы используете float для дивиденда, вы получите десятичный ответ.
(/ 22.0 7) -> 3.142857142857143
Также доступна функция (unchecked-остаток x y).
Ответ 5
даже это будет работать:
(/ 22. 7) => 3.142857142857143
Ответ 6
(float 411/125)
- это еще один вариант, если вам даны номера напрямую, что имеет место, если вы просто используете REPL в качестве калькулятора. К сожалению, это несколько символов дольше, чем решение Джонатана Фейнберга и ire_and_curses.;)