四舍五入
内置
<script> function sswr(j){ var temp=Math.round(j);//四舍五入取整,不保留小数位 return temp; //丢弃小数部分,保留整数部分:parseInt(5/2) //向上取整,有小数就整数部分加1:Math.ceil(5/2) //向下取整:Math.floor(5/2) } var i=3.6; var newi=sswr(i); console.log(newi)//4 </script>
方法1
<script> function sswr(j){ var y=(j*10)%10;//余数 var temp=parseInt(j);//取整 if(y>=5){ temp++ } return temp; } var i=3.6; var newi=sswr(i); console.log(newi)//4 </script>
方法2
<script>//Number对象方法:把数字转换为字符串,结果的小数点后有指定位数的四舍五入数字。 //需要注意的是:n不能超过20、如果截取的位数大于原来的则0补、如果截取位数的最后一位是0那么则还是0并不会四舍五入
var i=3.264; var newi=i.toFixed(1); console.log(newi)//3.3 </script>
方法3.完美版
<script> //保留2位小数[如果需要保留小数位,那么这个是最完美的] Number.prototype.toFixed2=function(n){ //如果截取位数的最后一位是0的话,那么将不会四舍五入,还是原来的0,以下将返回0.10 //return j.toFixed(2); //为避免此类悲剧发生,我建议这么做 var that=this; var w=Math.pow(10,n);//表示10的n次幂 //0.105*100=10.5, 10.5四舍五入为11, 11/100=0.11 var temp=Math.round(that*w)/w; return temp; }; var i=0.105; var newi=i.toFixed2(2); console.log(newi)//0.11 </script>
保留小数位,但是不四舍五入
<script>
function Subs(ws,num){
var temp=String(num);
var zs=temp.split(".")[0];
var xs=temp.split(".")[1];
if(xs.length>ws){
var newxs=xs.substring(0,ws);
temp=zs+'.'+newxs+'...'
}
console.log(temp)
}
var i=12.3456788;
Subs(2,i)//12.34...
</script>
四舍五入--不会补0
<script> Number.prototype.sswr=function(n){ var that=this; var temp=that; var thatStr=String(that); var point=thatStr.indexOf('.'); if(point!=-1){ var ws=thatStr.length-point-1;//小数位数 if(ws-n>0){ var w=Math.pow(10,n);//表示10的n次幂 //0.105*100=10.5, 10.5四舍五入为11, 11/100=0.11 temp=Math.round(temp*w)/w; } } return temp; } var a=12.34005.sswr(8); var b=12.34005.sswr(3); console.log(a);//12.34005 console.log(b);//12.34 </script>
四舍五入--不会补0(angular过滤器版)
.filter('number2',function(){
return function(that,n){
var temp=that;
var thatStr=String(that);
var point=thatStr.indexOf('.');
if(point!=-1){
var ws=thatStr.length-point-1;//小数位数
if(ws-n>0){
var w=Math.pow(10,n);//表示10的n次幂
//0.105*100=10.5, 10.5四舍五入为11, 11/100=0.11
temp=Math.round(temp*w)/w;
}
}
return temp;
}
})

浙公网安备 33010602011771号