今天需要Javascript的四舍五入,顺便熟悉一下Math.pow(x,y)与Math.round(x);


今天需要Javascript的四舍五入,顺便熟悉一下Math.pow(x,y)与Math.round(x);

  代码


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <title>Javascript四舍五入(Math.round()与Math.pow())</title>

    <script type="text/javascript">

        //Math.round(x);返回数字最接近的整数,四舍五入取整数,即舍去小数部分

        function f(){

            alert(Math.round(123.567));

            alert(Math.round(123.456));

        }

        //Math.pow(x,y);返回底数的指定次幂

        //返回以x的y次幂,等同于x的y次幂的数值表达式

        //如果pow的参数过大而引起浮点溢出,返回Infinity

        function f1(){

            alert(Math.pow(2,10));//2的10次方等于1024

            alert(Math.pow(1024,0.1));//1024的0.1次方等于2

            alert(Math.pow(99,9999));//溢出则返回Infinity

        }

        /*Javascript设置要保留的小数位数,四舍五入。

         *ForDight(Dight,How):数值格式化函数,Dight要格式化的 数字,How要保留的小数位数。

         *这里的方法是先乘以10的倍数,然后去掉小数,最后再除以10的倍数。

         */  

        function ForDight(Dight,How){  

            Dight = Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);  

            return Dight;  

        }  

        function f2(){

            alert(ForDight(12345.67890,3));//保留三位小数

            alert(ForDight(123.99999,4));//保留四位小数

        }

        //另外一种四舍五入的方法,原理一样。

        //里面的两个参数:num就是要转换的数据。n为要转换的位数

        //cheng(123.456,2);//保留两位小数

        function cheng(num,n){

            var  dd=1;  

            var  tempnum;  

            for(i=0;i<n;i++){

                dd*=10;  

            }  

            tempnum = num*dd;

            tempnum = Math.round(tempnum);  

            alert(tempnum/dd);  

        }

    </script>

</head>

<body>

    <input type="button" value="round" onclick="f();" />

    <input type="button" value="pow" onclick="f1();" />

    <input type="button" value="设置要保留的小数位数,四舍五入" onclick="f2();" />

    <input type="button" value="cheng" onclick="cheng(123.456,2);" />

</body>

</html>


 其他的方法,参考一下:


  代码


<script type="text/javascript">

//用Javascript取float型小数点后两位,例22.127456取成22.13,如何做? 

//1.最笨的办法....... [我就怎么干的.........] 

    function get(){

        var s = 22.127456 + "";

        var str = s.substring(0,s.indexOf(".") + 3);

        alert(str);

    } 

</script>

<script type="text/javascript">

//2. 正则表达式效果不错 

    onload = function(){

        var a = "23.456322";

        var aNew;

        var re = /([0-9]+\.[0-9]{2})[0-9]*/;

        aNew = a.replace(re,"$1");

        alert(aNew);

    }

</script>


<script type="text/javascript">

//3. 他就比较聪明了..... 

    var num=22.127456;

    alert( Math.round(num*100)/100);

</script> 


<script type="text/javascript">

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

    var num=22.127456;

    alert( num.toFixed(2));

</script>