javascript对小数四舍五入取值?

来源:互联网 发布:电信网络诈骗论文 编辑:程序博客网 时间:2024/05/22 01:52

用Javascrīpt取float型小数点后两位,例22.127456取成22.13,如何做?

1.   不可取

  function get()
   {
    var s = 22.127456 + "";
    var str = s.substring(0,s.indexOf(".") + 3);
    alert(str);
   }

2. 正则表达式效果不错

<scrīpt type="text/javascrīpt">
onload = function(){
    var a = "23.456322";
    var aNew;
    var re = /([0-9]+/.[0-9]{2})[0-9]*/;
    aNew = a.replace(re,"$1");
    alert(aNew);
}
</scrīpt>

3.   变通使用Math

 

 <scrīpt>  
  alert((Math.floor(555.55544444*100))/100);  
  </scrīpt>

 

---------------- 以上3个都是不能四舍五入的----------------

 

4 会用新鲜东西的朋友....... 但是需要 IE5.5+才支持。

 <scrīpt>
var num=22.127456;
alert( num.toFixed(2));
</scrīpt>

5、

 <scrīpt>
var num=22.127456;
alert( Math.round(num*100)/100);
</scrīpt>

<script>

 function   roundAmount(n)   {  
      var   s   =   ""   +   Math.round(n   *   100)   /   100  
      var   i   =   s.indexOf('.')  
      if   (i   <   0) 
      return   s   +   ".00"  
      var   t   =   s.substring(0,   i   +   1)   +   s.substring(i   +   1,   i   +   3)  
      if   (i   +   2   ==   s.length)
      t   +=   "0"  
       
      return   t  
  }  
  alert(roundAmount(123.125));
  </script>

原创粉丝点击