web-dev-qa-db-fra.com

Lorsque je divise des nombres en clojure, j'obtiens une fraction, comment puis-je obtenir la décimale?

Quand je fais (/ 411 125), Je ne comprends pas en décimal. Comment je fais ça?

68
unj2
user> (float (/ 411 125))
3.288
user> (double (/ 411 125))
3.288
84
Brian Carper
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
30
Jacek Laskowski

Comme documenté , la division entière donne des nombres rationnels. Essayer

(/ 411.0 125)
14
Jonathan Feinberg

Si vous utilisez un flottant pour le dividende, vous obtiendrez une réponse décimale.

(/ 22.0 7) -> 3.142857142857143

Il y a aussi la fonction (non cochée-reste x y) disponible.

7
ire_and_curses

même cela fonctionnera:

(/ 22. 7) => 3.142857142857143
6
Samir

(float 411/125) est une autre variante si les chiffres vous sont fournis directement, ce qui est le cas si vous utilisez simplement le REPL comme calculatrice. Malheureusement, cela fait quelques caractères de plus que la solution de Jonathan Feinberg et ire_and_curses.;)

1
user1460043