成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

js中的toFixed保留小數(shù)位的功能優(yōu)化

Cheriselalala / 3308人閱讀

摘要:線(xiàn)看效果保留了一個(gè)無(wú)效的位,有時(shí)候?yàn)榱藬?shù)據(jù)整齊化,有必要加上這個(gè)。自己實(shí)現(xiàn)了一個(gè)解決這個(gè)問(wèn)題的方法默認(rèn)保留小數(shù)如果不是數(shù)字,直接返回如果不是小數(shù),返回判斷保留位的下一位是否大于,四舍五入移除多余的

線(xiàn)看效果:

1.1.toFixed(2);// 1.10

保留了一個(gè)無(wú)效的0位,有時(shí)候?yàn)榱藬?shù)據(jù)整齊化,有必要加上這個(gè)0。如果不想要呢?toFixed有辦法解決嗎?

比如:保留兩位小數(shù)

1.001; // 我想要1,而不是1.00

這種情況toFixed是做不到的

搜索了一下,暫時(shí)沒(méi)有發(fā)現(xiàn)有這樣的方法,哪位朋友找到@我一下。
自己實(shí)現(xiàn)了一個(gè)解決這個(gè)問(wèn)題的方法:

Number.prototype.toFixedNo = function(fixed) {
    var num = this;
    // 默認(rèn)保留小數(shù)
    var fixed = fixed || 0;
    // 如果fixed不是數(shù)字,直接返回
    if (isNaN(fixed)) {
        return num.toString();
    } else {
        var numStr = num.toString();
        // 如果num不是小數(shù),返回
        if (numStr.indexOf(".") < 0 || numStr.indexOf(".") == numStr.length - 1) {
            return parseInt(num);
        } else if (fixed == 0) {
            var arr = numStr.split(".");
            var integer = arr[0];
            var decimals = arr[1];
            if (parseInt(decimals) != 0) {
                if (decimals.substr(0, 1) >= 5) {
                    integer = parseInt(integer) + 1;
                }
            }
            return integer;
        } else {
            var arr = numStr.split(".");
            var integer = arr[0];
            var decimals = arr[1];

            if (fixed < decimals.length) {
                var fixedNo = decimals.substr(0, fixed);
                //  判斷保留位的下一位是否大于5,四舍五入
                if (decimals.substr(fixed, 1) >= 5) {
                    fixedNo = parseInt(fixedNo) + 1;
                } else {
                    if (parseInt(fixedNo) == 0) {
                        return integer;
                    }
                    // 移除多余的0
                    fixedNo = fixedNo.replace(/0+$/, "");
                }
                decimals = fixedNo;
            }
            return integer + "." + decimals;
        }
    }
}

test:

1.04.toFixedNo(1);//1,
1.05.toFixedNo(1);//1.1
1.04.toFixedNo();//1
1.5.toFixedNo();//2

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89766.html

相關(guān)文章

  • 其實(shí),只是再多想一點(diǎn)

    摘要:按照這個(gè)說(shuō)法,在還是行不通的,應(yīng)該得到,得到?jīng)]問(wèn)題,有些摸不到邊了,所以自定義一下這個(gè)方法以便備用總結(jié)日益強(qiáng)大,各種語(yǔ)言逐步向它靠近。開(kāi)發(fā)中一般時(shí)間很緊迫,好多東西都沒(méi)工夫想,所以還有很多要優(yōu)化的地方,有時(shí)候,放慢腳步,可能也是一種進(jìn)步吧 Jquery再熟悉不過(guò),其中的$.ajax封裝也不陌生,其中 $.ajax({ url:url, type:GET, da...

    aboutU 評(píng)論0 收藏0
  • 數(shù)字

    摘要:中沒(méi)有浮點(diǎn)數(shù)這種東西,但是你會(huì)發(fā)現(xiàn)這樣一個(gè)問(wèn)題,如下從數(shù)學(xué)角度來(lái)看,你會(huì)覺(jué)得不可思議,這是為什么這就跟浮點(diǎn)數(shù)有關(guān)。 在JavaScript只有一種數(shù)值類(lèi)型number,它包括整數(shù)和帶小數(shù)的十進(jìn)制數(shù)(這里的整數(shù)有點(diǎn)特殊,指的是沒(méi)有小數(shù)的十進(jìn)制數(shù),所以1.0等同于整數(shù)1)。 一、語(yǔ)法1、js中的小數(shù),多余的零可以省略 let a = .1; // 默認(rèn)為0.1 let b = 1.; ...

    OBKoro1 評(píng)論0 收藏0
  • 關(guān)于js小數(shù)浮點(diǎn)數(shù)操作出現(xiàn)精度問(wèn)題原因以及解決方法

    摘要:我們可以利用該函數(shù)限定返回?cái)?shù)值的位數(shù),從而達(dá)到提高精度的效果。 一、問(wèn)題的引入 今天在看基礎(chǔ)js文章的時(shí)候發(fā)現(xiàn)了一個(gè)浮點(diǎn)數(shù)的精度問(wèn)題,當(dāng)打印小數(shù)相加的時(shí)候有時(shí)候會(huì)出現(xiàn)數(shù)值不準(zhǔn)確的情況,如果是在做一些需要數(shù)據(jù)精度要求較高的工作的時(shí)候稍有不慎就會(huì)出現(xiàn)問(wèn)題 console.log(0.1+0.1) //0.2 console.log(0.1+0.2) //0.3000000000000000...

    Chiclaim 評(píng)論0 收藏0
  • 「干貨」細(xì)說(shuō) Javascript 浮點(diǎn)數(shù)精度丟失問(wèn)題(內(nèi)附好課推薦)

    摘要:前言最近,朋友問(wèn)了我這樣一個(gè)問(wèn)題在中的運(yùn)算結(jié)果,為什么是這樣的雖然我告訴他說(shuō),這是由于浮點(diǎn)數(shù)精度問(wèn)題導(dǎo)致的。由于可以用階碼移動(dòng)小數(shù)點(diǎn),因此稱(chēng)為浮點(diǎn)數(shù)。它的實(shí)現(xiàn)遵循標(biāo)準(zhǔn),使用位精度來(lái)表示浮點(diǎn)數(shù)。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問(wèn)了我這樣一個(gè)問(wèn)題:在 chrome 中的運(yùn)算...

    senntyou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<