您现在的位置: 365建站网 > 365学习 > JS/javascript取整数 取绝对值 四舍五入(可保留两位小数)方法整理

JS/javascript取整数 取绝对值 四舍五入(可保留两位小数)方法整理

文章来源:365jz.com     点击数:1213    更新时间:2017-12-08 11:12   参与评论
JS/JavaScript 小数取整的函数:

1.丢弃小数部分,保留整数部分 

js:parseInt(7/2) 

2.向上取整,有小数就整数部分加1 

js: Math.ceil(7/2) 

3,四舍五入. 
js: Math.round(7/2) 

4,向下取整 

js: Math.floor(7/2)


JS/javascript取绝对值:

绝对值在js中我们直接使用abs函数来求,这里就来整理一些关于js中取得变量的绝对值的方法,以便让大家更深入的理解js绝对值的用法

js中的绝对值不怎么常用到,今天在写一个方法的时候遇到了,于是记录下来,与大家共同学习。

js中的默认对象——Math对象下面有一个abs函数,专门用来获取数字的绝对值,如:

Math.abs(-1);  //1

Math.abs(-2);  //2

当然,这个函数也可以用来获取到变量的绝对值,如:

var aaa=-3;

var bbb=abs(aaa);  //3

例子:

<script language="javascript">

document.write("0的绝对值为:",Math.abs(0),"<br>");

document.write("1的绝对值为:",Math.abs(1),"<br>");

document.write("-1的绝对值为:",Math.abs(-1),"<br>");

//-->

</script>

另一种方法:

我们知道数学里面的绝对值是不论小数或者整数的,这里面当然也是这样。

var aaa=-3.3;

var bbb=abs(aaa);  //3.3

JS/javascript四舍五入:

方法一:
在js中四舍五入的函数 tofixed(n) , n为要保留的小数位数。
n为0~20,当n超过20的时候,js会出错。
var d=10.005;
  var f=d.tofixed(2);
  alert(f);
  bug:
  如果小数点前和要截取的前一位都是0时,不会按常理截取。
  var h=0.07
  h.tofixed(1)的值为0.0
  如果要修改这个缺陷,可以把js中的number类型的tofixed方法重写。
例如:

 代码示例:
number.prototype.tofixed = function(d)
  {
      var s=this+"";if(!d)d=0;
      if(s.indexof(".")==-1)s+=".";s+=new array(d+1).join("0");
      if (new regexp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
      {
  var s="0"+ regexp.$2, pm=regexp.$1, a=regexp.$3.length, b=true;
  if (a==d+2){a=s.match(/\d/g); if (parseint(a[a.length-1])>4)
  {
      for(var i=a.length-2; i>=0; i--) {a[i] = parseint(a[i])+1;
      if(a[i]==10){a[i]=0; b=i!=1;} else break;}
  }
  s=a.join("").replace(new regexp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
      }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";
};  

这样就可以修复number类型的tofixed方法。

方法二:

之前一直在用这个js自带的tofixed函数来进行四舍五入的操作,可是,在实际使用过程中却遇到了问题。
比如

复制代码 代码示例:
var money=0.00542;//0.006;  
alert(number(money).tofixed(2));  
//0.00 

以上结果是错误的,下面的方法通过巧妙的使用math.round函数,完全可以解决数值很小时的精度问题。

 代码示例:
var money=0.00542;//0.006;  
alert(number(money).tofixed(2));  
 
function round2(number,fractiondigits){  
    with(math){  
        return round(number*pow(10,fractiondigits))/pow(10,fractiondigits);  
    }  
}  
alert(round2(money,2));//0.01
round 方法
返回与给出的数值表达式最接近的整数。
math.round(number)
必选项 number 参数是要舍入到最接近整数的值。
说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。
否则,round 返回小于等于 number 的最大整数。 

js 四舍五入函数 toFixed(),里面的参数 就是保留小数的位数。
<script language="javascript">
document.write("<h1>JS保留两位小数例子</h1><br>"); 
   var a=2.1512131231231321; 
   document.write("原来的值:"+a+"<br>"); 
   document.write("两位小数点:"+a.toFixed(2)+"<br>四位小数点"+a.toFixed(4)); 
</script

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (1213人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------