Any idea why the follow code "calc" returns the "70%" of the 330000 
incorrectly?testing on: Groovy Version: 2.4.9 JVM: 1.8.0_112 Vendor: Oracle 
Corporation OS: Mac OS XMac OS X 10.12.3

groovy:000>     def calc = { amount, ttl ->
groovy:001>         double rtn
groovy:002>         if (amount[-1] != '%') rtn = amount.toDouble()
groovy:003>         else rtn = ttl / 100.0 * amount.replaceAll(/%\Z/, 
'').toFloat()
groovy:004> 
groovy:004>         rtn
groovy:005>     }
===> groovysh_evaluate$_run_closure1@39fcbef6
groovy:000> calc("70%", 330000)
===> 230999.99999999997
groovy:000> calc("10%", 330000)
===> 33000.0
groovy:000> calc("20%", 330000)
===> 66000.0
groovy:000> calc("30%", 330000)
===> 99000.0
groovy:000> calc("40%", 330000)
===> 132000.0
groovy:000> calc("50%", 330000)
===> 165000.0
groovy:000> calc("60%", 330000)
===> 198000.0
groovy:000> calc("70%", 330000)
===> 230999.99999999997
groovy:000> calc("80%", 330000)
===> 264000.0
groovy:000> calc("90%", 330000)
===> 297000.0
groovy:000> calc("100%", 330000)
===> 330000.0

Reply via email to