整理了網上一些方法,方便以後查閱。
1.使用bigdecimal類
bigdecimal b1 = new bigdecimal(width);
bigdecimal b2 = new bigdecimal(height);
bigdecimal b3 = b1.multiply(b2);
return b3.setscale(2, bigdecimal.round_half_up).doublevalue();
setscale方法中,第乙個引數可選1或2,3以及大於3都還是保留兩位小數
2.string.format
system.out.println(string.format("%.2f", rec2.getarea()));
便於輸出,%後面的數字即為要保留的小數字數
3.decimalformat
decimalformat df = new decimalformat("#.00");
system.out.println(df.format(4.125));
需注意的是,該方法只對部分double型別資料有效,原因不明
如上述4.125,保留兩位小數應該為4.13,但執行結果為4.12
以及0.123,正確結果為0.12,輸出結果為 .12
4.math
(double)math.round(0.123*100)/100
這個方法看似沒道理,但是測試資料輸出都是正確的
即便於輸出,而且也便於邏輯處理時計算
注意前面的double轉型不可不加!
Junit中對double型別進行assert對比
在junit測試中使用到了將double型別的資料進行比較,但是出現以下錯誤 報錯資訊 the method assertequals double,double from the type assert is deprecated junit中沒有assertequals double,doubl...
Java中double型別資料的比較
double a 0.001 double b 0.0011 bigdecimal data1 new bigdecimal a bigdecimal data2 new bigdecimal b data1.compareto data2 非整型數,運算由於精度問題,可能會有誤差,建議使用bigd...
在JAVA中怎麼比較Double型別資料的大小?
double a 0.001 double b 0.0011 bigdecimal data1 new bigdecimal a bigdecimal data2 new bigdecimal b data1.compareto data2 非整型數,運算由於精度問題,可能會有誤差,建議使用bigd...