本章節介紹如何實現對數字保留兩位小數效果,如果數字的原本小數位數不到兩位,那麼缺少的就自動補零,這個也是為了統一的效果,先看代碼實例:
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()方法一章節。