亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么js里面有些數字*100結果會不準確?

為什么js里面有些數字*100結果會不準確?

拉莫斯之舞 2018-08-10 11:10:14
想實現輸入的是一個小數,輸出一個百分數代碼如下:app.filter("rateFilter", function () {    return function (rate) {        var clickRate = rate;        console.log(clickRate);        var result = clickRate * 100 + "%";        console.log(result);        return result;     } })結果輸出的部分數據不正常:是什么原因導致的呢?
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

舍入誤差,具體的參考一下浮點數的計算方法就知道是怎么回事兒了。

如果不是有特殊的精度要求,我一般會對可能出現誤差的情況做點簡單處理。

//按照有效數字位數進行四舍五入,默認6位有效數字Math.signFigures = function(num, rank = 6) {    if(!num) return(0);    const sign = num / Math.abs(num);    const number = num * sign;    const temp = rank - 1 - Math.floor(Math.log10(number));    let ans;    if (temp > 0) {
        ans = parseFloat(number.toFixed(temp));
    }    else if (temp < 0) {
        ans = Math.round(number / Math.pow(10, temp)) * temp;
    }    else {
        ans = Math.round(number);
    }    return (ans * sign);
};0.56 * 100;                    //56.00000000000001Math.signFigures(0.56 * 100);  //560.2 + 0.1;                     //0.30000000000000004Math.signFigures(0.2 + 0.1);   //0.31.09 * 100;                    //109.00000000000001Math.signFigures(1.09 * 100);  //109


查看完整回答
反對 回復 2018-09-16
  • 1 回答
  • 0 關注
  • 2486 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號