重庆涪陵网站建设公司,网络广告营销的特性,石家庄有哪些做网站的公司,盘锦网站建设哪家好js的小数的运算#xff0c;可能会得到一个不精确的结果#xff0c;因为所有的运算都要转换成二进制去计算#xff0c;然而#xff0c;二进制无法精确表示1/10。
var a 0.1 0.2;
console.log(a); //打印结果#xff1a;0.30000000000000004因此需要使用以下方法实现精确…js的小数的运算可能会得到一个不精确的结果因为所有的运算都要转换成二进制去计算然而二进制无法精确表示1/10。
var a 0.1 0.2;
console.log(a); //打印结果0.30000000000000004因此需要使用以下方法实现精确计算
加 // 两个浮点数求和function accAdd(num1,num2){var r1,r2,m;try{r1 num1.toString().split(.)[1].length;}catch(e){r1 0;}try{r2num2.toString().split(.)[1].length;}catch(e){r20;}mMath.pow(10,Math.max(r1,r2));// return (num1*mnum2*m)/m;return Math.round(num1*mnum2*m)/m;}减 // 两个浮点数相减function accSub(num1,num2){var r1,r2,m;try{r1 num1.toString().split(.)[1].length;}catch(e){r1 0;}try{r2num2.toString().split(.)[1].length;}catch(e){r20;}mMath.pow(10,Math.max(r1,r2));n(r1r2)?r1:r2;return (Math.round(num1*m-num2*m)/m).toFixed(n);}乘 // 两数相乘function accMul(num1,num2){var m0,s1num1.toString(),s2num2.toString(); try{ms1.split(.)[1].length}catch(e){};try{ms2.split(.)[1].length}catch(e){};return Number(s1.replace(.,))*Number(s2.replace(.,))/Math.pow(10,m);}除 // 两数相除function accDiv(num1,num2){var t1,t2,r1,r2;try{t1 num1.toString().split(.)[1].length;}catch(e){t1 0;}try{t2num2.toString().split(.)[1].length;}catch(e){t20;}r1Number(num1.toString().replace(.,));r2Number(num2.toString().replace(.,));return (r1/r2)*Math.pow(10,t2-t1);}