Java浮點數精確計算

  在使用java語言編寫程序處理一些有關於金額或者精度很高的數據時,通常會使用到一個叫做 BigDecimal的類。

  BigDecimal是一個封裝過的類用於計算一些對結果格式有要求的數值。

下面是一個例子:

	public static void main(String[] args) {
		double money1 = 2.0;
		double price1 = 1.102;
		System.out.println("非精確:"+(money1-price1));
		BigDecimal money2 = new BigDecimal("2");
		BigDecimal price2 = new BigDecimal(String.valueOf(price1));
		System.out.println("精確:"+(money2.subtract(price2)));
		System.out.println("加一下"+(money2.add(price2)));
		System.out.println("乘一下"+(money2.multiply((price2))));
		System.out.println("除一下"+(price2.divide(money2)));
	}

   實現的步驟時,首先需要將兩個進行計算的數字封裝成BigDecimal類型的數據,然後,通過調用BigDecimal類的add(BigDecimal)、subtract(BigDecimal)、multiply(BigDecimal)、divide(BigDecimal)方法進行相應的加減乘除。

  注意:在進行創建BigDecimal對象時,構造方法中傳入的值需是字符串,即:

        BigDecimal money = new BigDecimal("1.1");//正確
        BigDecimal money1 = new BigDecimal(1.1);//錯誤

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章