天天看點

常用類————(4)BigDecimal類BigDecimal類

 float、double兩種浮點數類型運算是不夠精确,不僅是Java語言,很多程式設計語都有這樣的問題。為了能夠精确表示和計算浮點數,Java提供了BigDecimal類。

BigDecimal類

import java.math.BigDecimal;

public class BG {
public static void main(String[] args) {
		
		double x = 0.1;
		double y = 0.2;
		//不精确的
		System.out.println(x+y);
		//精确的
		BigDecimal b1 = new BigDecimal(x+"");
		BigDecimal b2 = new BigDecimal(y+"");
		//加法
		BigDecimal b3 = b1.add(b2);
		
		//向基本資料類型轉化,同樣的還有intValue,floatValue,longValue等
		double result1 = b3.doubleValue();
		System.out.println(result1);
		
		//不精确的           減法
		System.out.println(x-y);
		double result2 = b1.subtract(b2).doubleValue();
		//精确的
		System.out.println(result2);
		//不精确的           乘法
		System.out.println(x*y);
		double result3 = b1.multiply(b2).doubleValue();
		//精确的
		System.out.println(result3);
		//不精确的          除法
		System.out.println(x/y);
		double result4 = b1.divide(b2).doubleValue();
		//精确的
		System.out.println(result4);
		
	}
}
           
0.30000000000000004
0.3
-0.1
-0.1
0.020000000000000004
0.02
0.5
0.5