今天做的項目中有個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();