解决js小数位加减乘除精确问题 您所在的位置:网站首页 js如何加减乘除运算代码 解决js小数位加减乘除精确问题

解决js小数位加减乘除精确问题

2023-03-30 18:56| 来源: 网络整理| 查看: 265

相比前端进行计算,有好多小数位加减乘除出现科学计数,倒是精确不对,来面我写一些解决该问题的办法,上代码!

加法运算

function accAdd ( arg1, arg2){ let r1, r2, m, n try { r1 = arg1.toString().split('.')[1].length; }catch (e){ r1 = 0; } try { r2 = arg2.toString().split('.')[1].length; }catch (e){ r2 = 0; } m = Math.pow(10,Math.max(r1,r2)); n = r1 >= r2 ? r1 :r2 return +(( arg1 * m + arg2 *m)/m).toFixed(n) } 复制代码

减法运算

function accSub ( arg1, arg2){ let r1, r2, m, n try { r1 = arg1.toString().split('.')[1].length; }catch (e){ r1 = 0; } try { r2 = arg2.toString().split('.')[1].length; }catch (e){ r2 = 0; } m = Math.pow(10,Math.max(r1,r2)); n = r1 >= r2 ? r1 :r2 return +(( arg1 * m - arg2 *m)/m).toFixed(n) } 复制代码

乘法运算

function accMul ( arg1, arg2){ let r1 = arg1.toString(); let r2 = arg2.toString(); let m = 0; try { m += arg1.toString().split('.')[1].length }catch(e){} try { m += arg2.toString().split('.')[1].length }catch(e){} return (Number(r1.replace('.','')) * Number(r2.replace('.',''))) / Math.pow(10,m) } 复制代码

除法运算

function accDiv(arg1, arg2){ let r1,r2,t1 = 0,t2 = 0; arg1 = arg1.toString(); arg2 = arg2.toString(); try{ t1 = arg1.split('.').length; }catch(e){} try { t2 = arg2.split('.').length; } r1 = Number(arg1.replace('.','')); r2 = Number(arg2.replace('.','')); let num = Math.pow(10, t2-t1); let num1 = r1/r2; return accMul(num1, num) //调用乘法 } 复制代码


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有