淺談Java double 相乘的結果偏差小問題
更新時間:2017年01月22日 10:16:49 投稿:jingxian
下面小編就為大家?guī)硪黄獪\談Java double 相乘的結果偏差小問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
看下面的一段代碼的運行結果:
public class TestDouble {
public static void main(String[] args) {
double d =538.8;
System.out.println(d*100);
}
輸出結果很意外的不是 53880 而是53879.99999999999
解決方法一:
538.8*100 用*10*10 替換,才能得到我們想要的結果
538.8*10000 用 100*100替換。
解決方法二:
public class TestDouble {
public static void main(String[] args) {
double d =538.8;
BigDecimal a1 = new BigDecimal(Double.toString(d));
BigDecimal b1 = new BigDecimal(Double.toString(100));
BigDecimal result = a1.multiply(b1);// 相乘結果
System.out.println(result);
BigDecimal one = new BigDecimal("1");
double a = result.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留1位數
System.out.println(a);
}
}
以上這篇淺談Java double 相乘的結果偏差小問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
mybaits-plus?lambdaQuery()?和?lambdaUpdate()?常見的使用方法
MyBatis-Plus是一個?MyBatis?(opens?new?window)的增強工具,在?MyBatis?的基礎上只做增強不做改變,為簡化開發(fā)、提高效率而生,這篇文章主要介紹了mybaits-plus?lambdaQuery()?和?lambdaUpdate()?比較常見的使用方法,需要的朋友可以參考下2023-01-01

