I am writing code that will deal with currencies, charges, etc. I am going to use the BigDecimal class for math and storage, but we ran into something weird with it.
You are right, BigDecimal should be storing it correctly, my best guess is:
Either way, you are unlikely to get accurate results comparing a float to a BigDecimal.