2009-10-20 1 views

答えて

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

documentedとして、整数除算は有理数を生成します。お試しください

(/ 411.0 125) 
7

フロートを配当に使用すると、10進数の回答が得られます。

(/ 22.0 7) -> 3.142857142857143 

(unchecked-remainder x y)機能も利用できます。

27
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 
+0

ドキュメントは、私のために動作しません。私は同じバージョンのclojureを持っています。私は何かを輸入する必要がありますか? – justinhj

+0

申し訳ありませんが、私はそれを言っておくべきです - それは[leiningen](http://leiningen.org)によって管理されているREPLセッションです。 Clojureプロジェクトのための*プロジェクト(それゆえ依存性)管理ツールです。一度それを得ると、あなたは後悔しません。 –

+0

私もleiningenを使用しています – justinhj

1

(float 411/125)あなたは、あなただけの電卓としてREPLを使用している場合はそうである、直接番号を与えられている場合は、別の変種です。残念ながら、これはJonathan Feinbergとire_and_cursesの解決策よりも数文字長いです。 ;)

4

でもこれは動作します:

(/ 22. 7) => 3.142857142857143 
+0

また、コードがなぜ機能するのか、元のコードの何が間違っているのかについていくつかの説明を含めるべきです。 – vyegorov

+0

他のソリューションには何も間違っていませんが、他のソリューションと同様に、私はダブルスで別の考え方を表しています。なぜそれが働いているのかについて。私は確信していませんが、私はクロージャーがJavaからそれを継承したと思います。 – Samir