因为须要处理精度比较高的浮点数,因此弃用double类型,改用BigDecimal类来进行数值处理。 ide
在加减乘时都没有出现问题,可是到除法运算时,提示了以下错误: 函数
大概的意思是“没法结束的除法表达式;没有精确的除结果”。我当时输入的10/3,结果应该是3.3333....333。 spa
因而在网上找资料,发现我原来的处理方式有问题。 ci
BigDecimal num1 = new BigDecimal("10"); im
BigDecimal num2 = new BigDecimal("3"); di
BigDecimal num3 = num1.divide(num2); vi
其实devide的函数定义以下 浮点数
BigDecimal.divide(BigDecimal divisor, int scale, RoundingMode roundingMode) ; 数字
scale为小数位数; 错误
roundingMode为小数模式;
写成以下即可经过
BigDecimal num3 = num1.divide(num2,10,BigDecimal.ROUND_HALF_DOWN);