Use BigDecimal to improve the data accuracy