更精確的使用浮點型

浮點運算的經典案例是貨幣運算,涉及類BigDecimal。


代碼:

package zero;

import java.math.BigDecimal;

public class AccuratelyFloat {
	public static void main(String[] args) {
		double money=2.0;
		double price=1.1;
		double result=money-price;
		System.out.println("非精確計算");
		System.out.println("剩餘金額:"+result);
		
		//精確浮點的解決方法
		BigDecimal money1=new BigDecimal("2.0");//現有金額
		BigDecimal price1=new BigDecimal("1.1");//商品價格
		BigDecimal result1=money1.subtract(price1);
		System.out.println("精確計算");
		System.out.println("剩餘金額:"+result1);
	}
}
運行結果:

非精確計算
剩餘金額:0.8999999999999999
精確計算
剩餘金額:0.9

注意:這裏在創建BigDecimal類的實例時,在構造方法中一定要使用數字字符串作爲參數。如果直接使用浮點數或改類型的變量作爲參數,那麼構造方法接受的是經過二進制存儲的浮點,這樣就是不精確的浮點數。

發佈了34 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章