1

それが問題なのか、それともどうなっているのかわかりませんが、小数点以下2桁の値が必要です。小数点以下2桁に丸める関数を書くことはできますが、clojure自体で追加中に処理するソリューションはありますか。つまり、データ型などを変更するということです。

ありがとうございました。

4

3 に答える 3

5

ClojureはJavaの標準の倍精度浮動小数点数(1.3以降)を使用し、REPLは数値を表すために必要な数の桁のみを出力するため、この場合は3.0000000になりますが、不要な桁は削除されます。

便利なフォーマット機能で印刷する数字をコントロールできます。

(format "%.2f" (+ 1.0 2.0))
> "3.00"
于 2012-07-09T06:27:25.560 に答える
5

3.03.00clojureで等しい、doubleです。小数点以下2桁のstrを出力する場合は、formatを使用できます。

user> (= 3.0 3.00)
true
user> (== 3.0 3.00)
true
user> (format "%.2f" 3.0)
"3.00"
user> (class 3.00)
java.lang.Double
于 2012-07-09T06:31:49.317 に答える
2

正確な10進演算を行う必要がある場合は、「M」という接尾辞を付けて数値を記述し、それらが正確であることを示すことができます。

user=> (+ 1.00M 2.00M)
3.00M

ただし、これは、標準の不正確な浮動小数点数を使用するよりもはるかに効率が悪いことに注意してください。

于 2012-07-10T11:11:57.410 に答える