私はgrailsプロジェクトでこの奇妙な除算エラーが発生しました(しかし、grailsはそれとはほとんど関係がないと思います。GroovyまたはJavaの質問だと思います):
グルーヴィーなコンソールでこれを実行する場合
float money = -1.30
float r = 0.01
println ((money/r).class.name)
println ((money/r).floatValue())
println ((money/r).toString() )
この出力を取得します
java.lang.Double
-130.0
-129.99999813735482
groovyのfloat除算は私にDoubleを与えます、そしてこれは正しいです、しかしなぜDouble toString()は私にとても奇妙な値 "-129.99999813735482"を与え、正しい "-130.0"ではないのですか?