美文网首页时光轴
JS 浮点数计算 Bug 处理

JS 浮点数计算 Bug 处理

作者: 侯工 | 来源:发表于2018-10-31 16:54 被阅读8次

1.加:

function add(a, b) {
    var c, d, e;
    try {
        c = a.toString().split(".")[1].length;
    } catch (f) {
        c = 0;
    }
    try {
        d = b.toString().split(".")[1].length;
    } catch (f) {
        d = 0;
    }
    return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;
}

add(2.2,2.1)
4.3

2.2+2.1
4.300000000000001

2.减:

function sub(a, b) {
    var c, d, e;
    try {
        c = a.toString().split(".")[1].length;
    } catch (f) {
        c = 0;
    }
    try {
        d = b.toString().split(".")[1].length;
    } catch (f) {
        d = 0;
    }
    return e = Math.pow(10, Math.max(c, d)), (mul(a, e) - mul(b, e)) / e;
}

sub(1.4,1.1)
0.3

1.4-1.1
0.2999999999999998

3.乘:

function mul(a, b) {
    var c = 0,
        d = a.toString(),
        e = b.toString();
    try {
        c += d.split(".")[1].length;
    } catch (f) {}
    try {
        c += e.split(".")[1].length;
    } catch (f) {}
    return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
}

mul(2.2,2.2)
4.84

2.2*2.2
4.840000000000001

4.除:

function div(a, b) {
    var c, d, e = 0,
        f = 0;
    try {
        e = a.toString().split(".")[1].length;
    } catch (g) {}
    try {
        f = b.toString().split(".")[1].length;
    } catch (g) {}
    return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), mul(c / d, Math.pow(10, f - e));
}

div(2.1,0.3)
7

2.1/0.3
7.000000000000001

相关文章

  • JS 浮点数计算 Bug 处理

    1.加: add(2.2,2.1)4.3 2.2+2.14.300000000000001 2.减: sub(1....

  • Js中做减法时,出现小数位增加Bug

    这个bug是Js固有的,这是因为在javascript中浮点数的计算是以2进制计算的,浮点数精度不准。可以用下面方...

  • js浮点数计算bug

    在js中,带小数的数据运算时可能会出现好多位小数。这是因为在js中浮点数的计算是以2进制计算的。解决办法就是先转成...

  • js处理浮点数计算误差(精确度)

    js处理浮点数计算误差众所周知, 浮点计算会产生舍入误差的问题, 比如, 0.1 + 0.2, 结果应该是0 .3...

  • JS篇

    时间戳转换为年月日核心代码 input标签只输入数字 JS运算浮点数运算会有计算bug精确两位用toFixed(2...

  • js精度问题

    关于js浮点数计算精度不准确问题的解决办法 今天在计算商品价格的时候再次遇到js浮点数计算出现误差的问题,以前就一...

  • js 处理四则运算失去精度问题

    js 处理四则运算失去精度问题 计算精度,特别是浮点数计算。举个栗子 然后我寻求各种解决办法,其中用了lodash...

  • js浮点数计算精度问题案例及解决方案

    在项目中计算商品价格的时候再次遇到js浮点数计算出现误差的问题,以前一碰到这个问题就用tofixed方法进行处理一...

  • JS浮点数运算处理

    一. 问题描述 最近在做一个项目,页面上会存在一些JS浮点数的运算,发现JS浮点数运算存在一些bug.譬如: 0...

  • 浮点数计算中的精度丢失

    1 js浮点数运算精度丢失 如果你用过js计算浮点数你肯定会遇到过下面这种情况:(我的小学白读了吗==。) (其...

网友评论

    本文标题:JS 浮点数计算 Bug 处理

    本文链接:https://www.haomeiwen.com/subject/mzwatqtx.html