在寫**時直接使用+ - * / 對數字進行計算時不注意可能會存在一些奇怪bug(特別是兩小數之間的運算),比如整數和浮點數相乘出現了很多位小數,兩個小數相加減出現多個小數等…
傳入引數arg1,arg2 得到運算結果,num有傳入時保留num位小數
加 add
減 reducefunction
add(arg1,arg2,num)
catch(e
)try
catch(e
) m = math.
pow(
10, math.
max(r1, r2));
if(num||num===0)
return
(arg1 * m + arg2 * m)
/ m}
乘 multiplyfunction
reduce
(arg1,arg2,num)
catch(e
)try
catch(e
) m = math.
pow(
10, math.
max(r1, r2));
if(num||num===0)
return
(arg1 * m - arg2 * m)
/ m}
除 divisionfunction
mul(arg1, arg2,num)
catch
(e)try
catch
(e)//將兩個小數去掉小數點,強制轉換整個值(即進行數值放開小數點位數的倍數),然後進行相乘的操作,相乘的結果除去10的m次方
if(num||num===0)
return
number
(s1.
replace
(".",""
))*number
(s2.
replace
(".",""
))/math.
pow(
10,m)
;}
function
accdiv
(arg1,arg2,num)
trycatch
(e)try
catch
(e) r1=
number
(arg1.
tostring()
.replace
(".",""
))r2=
number
(arg2.
tostring()
.replace
(".",""
))if(num||num===0)
return
(r1/r2)
*math.
pow(
10,t2-t1)
;}
BigDecimal加減乘除保留小數
public bigdecimal add bigdecimal augend 加 bigdecimal bd1 new bigdecimal 0.09 bigdecimal bd2 new bigdecimal 0.01 system.out.println add bd1.add bd2 sys...
BigDecimal的加減乘除即保留小數
bigdecimal bignum1 new bigdecimal 10 bigdecimal bignum2 new bigdecimal 5 bigdecimal bignum3 null 加法 bignum3 bignum1.add bignum2 system.out.println 和 是...
js計算小數加減乘除問題
在js中使用小數進行加減乘除計算時,可能會導致資料不準確出現好多小數問題 查了一些資料,一是 j ascript 浮點數計算的 bug,另乙個是和計算機最終轉換成二進位制計算有關係 解決方法 1 加減法可以用引數乘以1000再用結果除以1000 乘除法可以用引數分別 100進行計算後在除以10000...