Wenn ich Zahlen in Clojure teile, erhalte ich einen Bruch. Wie erhalte ich die Dezimalstelle?


Antworten:



33
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

Doc funktioniert nicht für mich. Ich habe die gleiche Version von Clojure. Muss ich etwas importieren?
Justinhj

1
Entschuldigung, ich hätte es sagen sollen - es ist eine von leiningen verwaltete REPL-Sitzung . Es ist das Projektmanagement-Tool (und damit das Abhängigkeitsmanagement) für Clojure-Projekte. Sobald Sie es in Gang gebracht haben, werden Sie es nicht bereuen.
Jacek Laskowski

Ich benutze auch leiningen
justinhj

Welche Version von Lein verwenden Sie? Ich bin bei lein 2 aus den Quellen gebaut.
Jacek Laskowski

1
Ich bin froh zu hören, dass es endlich gut funktioniert hat. Herzliche Glückwünsche! Behalten Sie Fragen zu doc ​​und Clojure im Auge, wenn Schleim verwendet wird - Sie können dies jetzt sehr einfach klären.
Jacek Laskowski



6

Auch das wird funktionieren:

(/ 22. 7) => 3.142857142857143

1
Sie sollten auch einige Erklärungen hinzufügen, warum Ihr Code funktioniert und was im Originalcode falsch ist.
Vyegorov

1
An anderen Lösungen ist nichts auszusetzen, aber - wie bei anderen Lösungen - ich vertrete eine andere Denkweise im Doppel. warum es funktioniert; Ich bin mir nicht sicher, aber ich denke, Clojure hat es von Java geerbt, das jede Ziffer mit Dezimalpunkt als Double akzeptiert, auch wenn es mit einer Dezimalstelle von Null formatiert ist
Samir

1

(float 411/125)ist eine andere Variante, wenn Sie die Zahlen direkt erhalten, was der Fall ist, wenn Sie nur die REPL als Taschenrechner verwenden. Leider sind dies einige Zeichen länger als die Lösung von Jonathan Feinberg und ire_and_curses. ;)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.