1

スキームでは、これを行うことができます:

#;> (/ 1 3)
1/3
#;> (exact->inexact (/ 1 3))
0.3333333333333333

これを「正確な分割」と呼びます。

私はJavaで遊んでいて、その関数BigDecimalを使用して正確な除算を行うことができるとわかりましたが、この関数は、除算が正確でない場合にスローします。他の同様の関数を使用して丸め方法を指定できますが、丸めたくない場合 (Scheme関数と同等)。.divide()ArithmeticExceptionexact->inexact

純粋なJavaを使用してそれは可能ですか? それとも図書館?

4

3 に答える 3

2

Clojureには有理数があります。

%> clojure
Clojure 1.0.0-
user=> (/ 1 3)
1/3

Clojure でアプリケーションを作成することが良い考えであるかどうかに関係なく、Clojure で数学を実装するか、Cojure マクロを最大限に使用して、より表現力を高め、スクリプトをコンパイルすることができます。1 つの名前空間は 1 つのクラスであり、Java クラスで簡単にインポートして使用できます。ただし、Clojure は Java クラス ライブラリなしではほとんど何もないため、逆の方法が最も一般的です。それらは両方の方法で混ざり合っています。

于 2013-07-13T21:05:32.237 に答える