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))