我在一个 grails 项目中发生了这个奇怪的除法错误(但我认为 grails 与它无关,我认为是一个 groovy 或 java 问题):
如果在 groovy 控制台中我运行它
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 中的浮点除法给了我一个 Double,这是正确的,但为什么 Double toString() 给我一个如此奇怪的值“-129.99999813735482”而不是正确的“-130.0”?