BigDecimal

BigDecimal主要是用來解決小數運算中出現的不精確問題
image.png
注意:盡量不要用第一個方式創建,仍會有精度失准問題,無法保證小數運算的精確

//第二種
BigDecimal bd1 = new BigDecimal("0.1");
//第三種
BigDecimal bd2 = BigDecimal.valueOf(0.2);

bd1.add(bd2); //0.3

image.png

image.png

BigDecimal bd1 = BigDecimal.valueOf(10.0);
BigDecimal bd2 = BigDecimal.valueOf(3.0);

System.out.println(bd1.divide(bd2, 2, RoundingMode.HALF_UP)); //3.33 四捨五入
System.out.println(bd1.divide(bd2, 2, RoundingMode.UP)); //3.34 無條件進一
System.out.println(bd1.divide(bd2, 2, RoundingMode.DOWN)); //3.33 無條件捨去

BigDecimal result = bd1.divide(bd2,2,RoundingMode.HALF_UP);

//若要轉為基本形別可用doubleValue

double v = result.doubleValue();

math.abs(v);//3.33