1樓:wuxinliulei
final String jsonStr = 「」;
final JsonObject jsonObject = new JsonObject(jsonStr);
final String payFee = jsonObject.getString("payFee");
final BigDecimal bigDecimal = new BigDecimal(payFee);
final BigDecimal bigDecimal100 = new BigDecimal("100");
final BigDecimal result = bigDecimal.multipy(bigDecimal100);
System.out.println(result.intValue());
精度損失發生在計算期間,如果我們使用
final double payFee = jsonObject.getDouble("payFee");
System.out.println((int)(payFee * 100));
得出的結果是1605,是不精確的。
事實上還有一種做法可以處理這種精度問題;
將double和float型別的資料轉換為String型別,對String型別的字元進行挨個的計算即可。
2樓:EnjoyMoving
用BigDecimal
不過注意要使用其建構函式BigDecimal(String),而不是BigDecimal(double)。。。
下面是我的一點小測試:
Java中的類和c 中的類,在使用中要理解?
Lieu 長文慎入,內含 星際 穿越 我覺得這是乙個程式語言設計的問題,也是個空間緯度的問題.很有意思.還沒接受過科班的CS的訓練,程式設計經驗僅限J2EE的前後端,拋磚引玉,談談自己的思考.二維世界 我認為程式語言的基本元素是操作符和變數,而通過操作符操作變數這一行為即乙個語句.比如有變數a,有操...
Java做後台介面,資料庫對應的實體類和Controller層給前端反序列化的實體類是否應該是兩個類?
404菌 多建幾個VO DTO 又沒事,前端要啥字段給啥字段。有些時候前端要的資料會從幾個表裡取。我所在專案是要求EO 資料庫對應實體類 最上不能出service層,即使沒有改變也得換乙個相同欄位的VO給到ctrl層 北冥有魚 介面返回的物件屬性一般是等於或多於前端所需的屬性。資料庫中的字段會有一些...
有關Java中類的繼承中方法繼承的問題?
Intopass 對於非靜態方法,有幾種呼叫方法。staticMethod this.staticMethod instance.staticMethod ClassName.staticMethod 強烈建議只使用第一種直接呼叫和第四種通過類名呼叫的方法。並且將第一種方法等同於第四種方法,並理解對...