Using BigDecimal is good because it makes sure that we are as precise as possible. However, I ran into several bugs while playing around because we were using the BigDecimal type in the Domain controllers. There are a couple really subtle problems:

The problems stem from the fact that BigDecimal is a Java construct and browsers and databases dont understand it.
1: Saving the Domain class has different results depending on the database. The in-memory database trys to cast it to a string, and postgres saves it as a float, both of which eliminate the precision of using BigDecimal
2: Grails will display a BigDecimal in a tag with type="number" in a view, and the browser doesnt understand the BigDecimal as a number so it displays nothing.

There is a fix though, saving them and representing them as Strings, and converting back and fourth when we need to use them for calculations allows us to use the precision of the BigDecimal while not having to worry about the underlying database or the browser.

There is plenty of info about this problem online if anybody cares to look.