If you add a decimal place to either one of the operands then it isn't integer division anymore:
groovy:000> percentageFee = 285L
===> 285
groovy:000> percentageFee / 100.0
===> 2.85
Here 100.0 is a BigDecimal.
If this was Java then dividing a long with an integer would result in a long. But in Groovy it doesn't work like that. The division operation returns a BigDecimal, assigning the result to a Long truncates the result:
groovy:000> percentageFee = 285L
===> 285
groovy:000> f = percentageFee / 100
===> 2.85
groovy:000> f.class
===> class java.math.BigDecimal
(Thanks to blackdrag for the clarification.)