Java
double
a =
11540.0
;
double
b =
0.35
;
double
result = a * b;
BigDecimal a1 =
new
BigDecimal(Double.toString(a));
BigDecimal b1 =
new
BigDecimal(Double.toString(b));
BigDecimal result1 = a1.multiply(b1);
System.out.println(
"控制檯輸出:"
+ a +
" * "
+ b +
" = "
+ result);
System.out.println(
"控制檯輸出2:"
+ a1 +
" * "
+ b1 +
" = "
+ result1);
System.out.println(
"計算器正確是:"
+
4039
);
控制檯輸出:11540.0 * 0.35 = 4038.9999999999995
控制檯輸出2:11540.0 * 0.35 = 4039.000
計算器正確是:4039
JS
//js中double類型的數據加減的時候出錯(如:148163.1 - 82692.09 會= 5471.010000000009)
var sumMoneyNew = sumMoneyGlobal - (distributionCostsGlobal - distributionCosts);
sumMoneyNew = sumMoneyNew.toFixed(2);
解決辦法:
js中有
Math.round(x)方法,返回數字最接近的整數,四捨五入取整數,即捨去小數部分
Number.toFixed()方法,能保留小數點後面的指定位數
原因: