use BigDecimal instead of float

Is `to_s` important?