float、double 用于科学计算或工程计算
涉及金额的精确计算(商业计算),使用java.math.BigDecimal
1. 推荐构建BigDecimal的方式
public static BigDecimal valueOf(double val);
public BigDecimal(String val);
2. 运算方法
3. 格式化和舍入模式
舍入模式:
https://docs.oracle.com/javase/8/docs/api/java/math/RoundingMode.html
Better : https://blog.csdn.net/lantianjialiang/article/details/43986703
4. 问题
BigDecimal的divide方法进行除法运算时,如果不能整除(出现无限循环小数),会抛出异常。
异常信息如下: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
方法:
给divide设置精确的小数点
网友评论