Convert all floats to BigDecimal

The changes made to values in the tests are actually corrections from
previously inaccurate calculations due to floating point storage.  They
would have been potentially inaccurate on different architectures, and
did not represent the actual underlying math.