平时我们在计算两个数的除法中,很容易丢失 小数部分,使用下面的方法即可解决这个问题哦
//先将整数转为浮点数进行相除,保留到小数部分
double value = ((float)curNoMoney/(float)Integer.parseInt(curNeedMoney))*100;
//通过改变构造方法,就可以解决精度丢失问题
BigDecimal b = new BigDecimal(Double.toString(value));
//将最后的浮点数,向上四舍五入,从小数点后一位开始计算
value = b.setScale(1, RoundingMode.HALF_UP).doubleValue();