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