JavaScrip小數自動補零程式碼例項

admin發表於2017-11-01

本章節介紹一下如何實現對數字保留兩位小數效果,如果數字的原本小數位數不到兩位,那麼缺少的就自動補零,這個也是為了統一的效果,先看程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function returnFloat(value){
  var value=Math.round(parseFloat(value)*100)/100;
  var xsd=value.toString().split(".");
  if(xsd.length==1){
    value=value.toString()+".00";
    return value;
  }
  if(xsd.length>1){
    if(xsd[1].length<2){
      value=value.toString()+"0";
    }
    return value;
  }
}
var num=3.1;
console.log(returnFloat(num));

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

1.function returnFloat(value){},引數是要被轉換的數字。

2.var value=Math.round(parseFloat(value)*100)/100,這個應該是函式的核心之處,parseFloat(value)將引數轉換為浮點數,因為引數有可能是字串,乘以100是因為要保留兩位小數,先將小數點向右移動兩個位數,然後再利用Math.round()方法實行四捨五入計算,最後除以100,這樣就實現了保留保留兩位小數,並且還具有四捨五入效果,但是這個並不完美,如果引數數字本身的小數位數大於等於2是可以的,如3.1415,但是如3或者3.0這樣的還是沒有完美的實現,繼續看下面。

3.var xsd=value.toString().split("."),使用點"."value分隔成一個陣列。

4.if(xsd.length==1){value=value.toString()+".00";return value;},如果陣列的長度是1,也就是說不存在小數,那麼就會為這個數字新增兩個0,例如3會被轉換成3.00。

5.if(xsd.length>1){

    if(xsd[1].length<2){

      value=value.toString()+"0";

    }

    return value;

  }

if(xsd.length>1)用來判斷數字的長度是否大於1,也就是數字是否具有小數,如有小數,但是小數的位數小於2,也就是類似3.1這樣的,就會在後面加一個0,也就是會轉換為3.10。

二.相關閱讀:

1.Math.round()可以參閱javascript Math.round()一章節。

2.parseFloat()函式可以參閱javascript parseFloat()一章節。

3.toString()函式可以參閱javascript Number物件 toString()一章節。  

4.split()函式可以參閱javascript String split()方法一章節。

相關文章