今天做的项目中有个1-0.9的操作,我期望的结果是0.1,但是用double或者float相减都得到是0.1000024类似于这样的数字,于是就在网上找了资料,解决了,就自己总结了一下:
BigDecimal可以将int,long,double,string一些类型的数据直接转型
BigDecimal num1= new BigDecimal("1");
BigDecimal num2= new BigDecimal("0.9");
//减法subtract()
BigDecimal num3=num1.subtract(num2);
//加法 add()
BigDecimal num4=num1.add(num2);
//乘法 multiply()
BigDecimal num5=num1.multiply(num2);
//除法 div()
BigDecimal num6=num1.divide(num2);
//将BigDecimal 类型转成double
double dou=num6.doubleValue();
//小数点取2位
String we = num6.setScale(2,BigDecimal.ROUND_HALF_UP).toString();