国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js中的toFixed保留小數位的功能優化

Cheriselalala / 3299人閱讀

摘要:線看效果保留了一個無效的位,有時候為了數據整齊化,有必要加上這個。自己實現了一個解決這個問題的方法默認保留小數如果不是數字,直接返回如果不是小數,返回判斷保留位的下一位是否大于,四舍五入移除多余的

線看效果:

1.1.toFixed(2);// 1.10

保留了一個無效的0位,有時候為了數據整齊化,有必要加上這個0。如果不想要呢?toFixed有辦法解決嗎?

比如:保留兩位小數

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

這種情況toFixed是做不到的

搜索了一下,暫時沒有發現有這樣的方法,哪位朋友找到@我一下。
自己實現了一個解決這個問題的方法:

Number.prototype.toFixedNo = function(fixed) {
    var num = this;
    // 默認保留小數
    var fixed = fixed || 0;
    // 如果fixed不是數字,直接返回
    if (isNaN(fixed)) {
        return num.toString();
    } else {
        var numStr = num.toString();
        // 如果num不是小數,返回
        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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89766.html

相關文章

  • 其實,只是再多想一點

    摘要:按照這個說法,在還是行不通的,應該得到,得到沒問題,有些摸不到邊了,所以自定義一下這個方法以便備用總結日益強大,各種語言逐步向它靠近。開發中一般時間很緊迫,好多東西都沒工夫想,所以還有很多要優化的地方,有時候,放慢腳步,可能也是一種進步吧 Jquery再熟悉不過,其中的$.ajax封裝也不陌生,其中 $.ajax({ url:url, type:GET, da...

    aboutU 評論0 收藏0
  • 數字

    摘要:中沒有浮點數這種東西,但是你會發現這樣一個問題,如下從數學角度來看,你會覺得不可思議,這是為什么這就跟浮點數有關。 在JavaScript只有一種數值類型number,它包括整數和帶小數的十進制數(這里的整數有點特殊,指的是沒有小數的十進制數,所以1.0等同于整數1)。 一、語法1、js中的小數,多余的零可以省略 let a = .1; // 默認為0.1 let b = 1.; ...

    OBKoro1 評論0 收藏0
  • 關于js小數浮點數操作出現精度問題原因以及解決方法

    摘要:我們可以利用該函數限定返回數值的位數,從而達到提高精度的效果。 一、問題的引入 今天在看基礎js文章的時候發現了一個浮點數的精度問題,當打印小數相加的時候有時候會出現數值不準確的情況,如果是在做一些需要數據精度要求較高的工作的時候稍有不慎就會出現問題 console.log(0.1+0.1) //0.2 console.log(0.1+0.2) //0.3000000000000000...

    Chiclaim 評論0 收藏0
  • 「干貨」細說 Javascript 浮點數精度丟失問題(內附好課推薦)

    摘要:前言最近,朋友問了我這樣一個問題在中的運算結果,為什么是這樣的雖然我告訴他說,這是由于浮點數精度問題導致的。由于可以用階碼移動小數點,因此稱為浮點數。它的實現遵循標準,使用位精度來表示浮點數。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 問了我這樣一個問題:在 chrome 中的運算...

    senntyou 評論0 收藏0

發表評論

0條評論

Cheriselalala

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<