麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

js中浮點(diǎn)型運(yùn)算BUG的解決方法說明

2019-11-20 21:18:45
字體:
供稿:網(wǎng)友

曾經(jīng)項目用到過的,之前在網(wǎng)上找到此代碼,但在特定條件下除法和加法運(yùn)算依然會出現(xiàn)BUG個人對此稍作優(yōu)化

復(fù)制代碼 代碼如下:

//除法函數(shù),用來得到精確的除法結(jié)果
//說明:javascript的除法結(jié)果會有誤差,在兩個浮點(diǎn)數(shù)相除的時候會比較明顯。這個函數(shù)返回較為精確的除法結(jié)果。
//調(diào)用:accDiv(arg1,arg2)
//返回值:arg1除以arg2的精確結(jié)果
function accDiv(arg1, arg2) {
    var t1 = 0, t2 = 0, r1, r2;
    try { t1 = arg1.toString().split(".")[1].length } catch (e) { }
    try { t2 = arg2.toString().split(".")[1].length } catch (e) { }
    with (Math) {
        r1 = Number(arg1.toString().replace(".", ""))
        r2 = Number(arg2.toString().replace(".", ""))
        return accMul((r1 / r2),pow(10, t2 - t1));
    }
}

復(fù)制代碼 代碼如下:

//乘法函數(shù),用來得到精確的乘法結(jié)果
//說明:javascript的乘法結(jié)果會有誤差,在兩個浮點(diǎn)數(shù)相乘的時候會比較明顯。這個函數(shù)返回較為精確的乘法結(jié)果。
//調(diào)用:accMul(arg1,arg2)
//返回值:arg1乘以arg2的精確結(jié)果
function accMul(arg1, arg2) {
    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
    try { m += s1.split(".")[1].length } catch (e) { }
    try { m += s2.split(".")[1].length } catch (e) { }
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}

復(fù)制代碼 代碼如下:

//加法運(yùn)算中級解決辦法
function accAdd(arg1, arg2) {  
    var r1, r2, m, c;
    try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
    try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } 
    c = Math.abs(r1 - r2);  
    m = Math.pow(10, Math.max(r1, r2))  
    if (c > 0) {  
        var cm = Math.pow(10, c);  
        if (r1 > r2) {  
            arg1 = Number(arg1.toString().replace(".", ""));  
            arg2 = Number(arg2.toString().replace(".", "")) * cm;  
        }  
        else {  
            arg1 = Number(arg1.toString().replace(".", "")) * cm;  
            arg2 = Number(arg2.toString().replace(".", ""));  
        }  
    }  
    else {  
        arg1 = Number(arg1.toString().replace(".", ""));  
        arg2 = Number(arg2.toString().replace(".", ""));  
    }  
    return accDiv((arg1 + arg2),m);
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品一区在线免费观看 | 777午夜精品视频在线播放 | 欧美老逼 | 午夜精品久久久久久久爽 | 国产精品高潮99久久久久久久 | 精品久久久久久久久久久aⅴ | 免费a级毛片永久免费 | 成人免费福利 | 国产美女爽到喷白浆的 | 成人精品一区二区三区中文字幕 | 色人阁导航 | 99re久久最新地址获取 | 国产一级毛片不卡 | 久久99精品国产99久久6男男 | 日本欧美在线播放 | 国产视频在线观看一区二区三区 | 久久精品中文字幕一区二区 | 99国产精品白浆在线观看免费 | 国产福利不卡一区二区三区 | 性视频久久 | 久久一区二区三区av | 欧美综合日韩 | 欧美视频一区二区三区 | 在线高清中文字幕 | 孕妇体内谢精满日本电影 | 56av国产精品久久久久久久 | 欧美淫视频 | 在线播放中文 | 久草在线视频免费播放 | 99综合视频 | a黄网站 | 成人短视频在线播放 | 神马福利网 | 国产精品99久久久久久久 | 中文字幕在线播放不卡 | 91精品久久久久久久 | 久久精品一区二区三 | 国产精品一区2区3区 | 亚洲第一激情 | 成人毛片免费播放 | 亚洲精中文字幕二区三区 |