Just try having collection be something that doesn't respond_to "each" and see the error that the 'for' version gives you.
(I know that I'm not really answering the OP's question about the cart or the BigDecimal error, but the suggestion in the first response isn't valid or even syntactically correct.)
Good point. Using debug() also puts some nice CSS classes on the output so you can format it (like display:none;) and still get to it in the "view source" or by changing the CSS dynamically (Firebug or alternate stylesheets)
That's the class into which database floats and decimal values are reified. It is a class that retains decimal places accurately (something that is simply not possible with binary-encoded approximations to real decimal numbers).