java精度問題

2021-07-07 06:17:24 字數 664 閱讀 8705

/**
**      一般情況下 精度是保留2位小數,並且四捨五入。
但是,如果涉及金錢的話,也有一些其他要求,比如只要整數字,保留2位小數且不要四捨五入。
**/
double s = 152.80d;

system.out.println(math.floor(s));

//返 回 152.0

decimalformat formater = new decimalformat("#0.##");

formater.setroundingmode(roundingmode.floor);

system.out.println(formater.format(499999.1683));

// 返回499999.16

double f = 499999.1683;

bigdecimal b = new bigdecimal(f);

double f1 = b.setscale(2, bigdecimal.round_half_up).doublevalue();

system.out.println(f1);

解決java中丟失精度問題

在電商專案中遇到的問題,正常的float double資料進行運算會出現精度丟失問題,在涉及貨幣計算時會出現嚴重後果。system.out.println 0.03 0.0101 system.out.println 1.0 0.52 system.out.println 4.235 1000 sy...

Java中float型別精度問題

今天發現了乙個小的問題,在網上找了說的不多,在這記錄下來方便自己和比人解決自己的問題吧。片段 1unit double.valueof actionutils.getbillingtransformunit request 取出換算單位1000.0 2svt curvesegment.getendv...

Java中float型別精度問題

今天發現了乙個小的問題,在網上找了說的不多,在這記錄下來方便自己和比人解決自己的問題吧。片段 1unit double.valueof actionutils.getbillingtransformunit request 取出換算單位1000.0 2svt curvesegment.getendv...