javascript-保留2位小數函數方法


 
         
 1 function zero(num){
 2       var str=num.toString();
 3       if(str.indexOf(".")==-1){
 4           return num+'.00';
 5       }else{
 6         //整個數字的長度
 7         var len=str.length;
 8         //整數部分長度
 9         var integerLen=str.indexOf('.');
10         if(len>(integerLen+2)){
11             return str.slice(0,integerLen+3);
12         }else if(len==(integerLen+2)){
13             return str+'0';
14         }else{
15             return str;
16         }
17       }
18 }
 
         

保留2位小數函數方法

 
1 console.log(zero(11))//11.00
2 console.log(zero(11.0))//11.00
3 console.log(zero(11.00))//11.00
4 console.log(zero(11.001))//11.00
5 console.log(zero(11.1))//11.10
6 console.log(zero(11.00001))//11.00

 保留3位小數方法

 1 var num= 343232343.00001;
 2 var num1= 343232343.01;
 3 var num2= 343232343.120;
 4 var num3= 343232343.12;
 5 var num4= 343232343.1;
 6 var num5= 343232343;
 7 console.log(zero(num));//343232343.000
 8 console.log(zero(num1));//343232343.010
 9 console.log(zero(num2));//343232343.120
10 console.log(zero(num3));//343232343.120
11 console.log(zero(num4));//343232343.100
12 console.log(zero(num5));//343232343.000
 1 function zero(num){
 2       var str=num.toString();
 3       if(str.indexOf(".")==-1){
 4           return num+'.000';
 5       }else{
 6         //整個數字的長度
 7         var len=str.length;
 8         //整數部分長度
 9         var integerLen=str.indexOf('.');
10         if(len>(integerLen+4)){
11             return str.slice(0,integerLen+4);
12         }else if(len<(integerLen+4)){
13             var n='';
14             if(len==integerLen+3){
15                 for(var i=0;i<1;i++){
16                     n+='0';
17                 }
18             } else {
19                 for(var i=0;i<2;i++){
20                     n+='0';
21                 }
22             }
23             return str+n;
24         }else if(len==(integerLen+4)){
25             return str;
26         }
27       }
28 }

 最近有空又寫出一個更加使用的保留小數位數:

 1 Number.prototype.zero=function(n){
 2     //數字轉成字符串以便進行下一步的處理
 3     var str=this+'';
 4     //沒有小數點
 5     if(str.indexOf('.')==-1){
 6         return n <= 0 ? str : str+'.'.padEnd(str.length+n-1,'0')
 7     }else{
 8     //有小數點  分 小於 等於 大於
 9     
10         //找到小數點的索引值
11         var dotIndex=str.indexOf('.')
12         //整數部分加小數點一共的長度
13         var intDotLen=dotIndex+1;
14         //存下字符串的長度
15         var totalLen=str.length;
16         //獲取小數位數
17         var dotLen=totalLen-intDotLen;
18         // console.log(dotIndex+','+intDotLen+','+totalLen+','+dotLen)
19 
20         if(dotLen<n){
21             return n <= 0 ? str.slice(0,intDotLen-1) : str.padEnd(intDotLen+n,'0')
22         }else if(dotLen==n){
23 
24             return n <= 0 ?  tr.slice(0,intDotLen-1) : str
25         }else if(dotLen>n){
26             // console.log(str.slice(0,intDotLen+n))
27             return  n <= 0 ? str.slice(0,intDotLen-1) : str.slice(0,intDotLen+n)
28         }
29     }
30 }
31 // var a=11;
32 // var a=11.0;
33 // var a=11.00;
34 // var a=11.001;
35 // var a=11.1;
36 // var a=11.00001;
37 
38  console.log(a.zero(-1))
39  console.log(a.zero(0))
40  console.log(a.zero(1))
41  console.log(a.zero(2))
42  console.log(a.zero(3))
43  console.log(a.zero(4))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM