谁让javascript是弱类型语言呢。没法。它不是专门搞程序的,而是在网页特效上的,所以不会那么精确。忍着吧,除非你自己写函数,用javascript的那些数学函数加上字符操作函数自己改吧

解决方案 »

  1.   

    这是我抄别人的, 给你参考:<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    </head>
    <script language="JavaScript">
    function Mul(n1,n2){
        var m=0;
    var s1=n1.toString();
    var s2=n2.toString();
        try{
        m+=s1.split(".")[1].length;
    }catch(e){}
        try{
        m+=s2.split(".")[1].length;
    }catch(e){}
        return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
    }
    function test(n1, n2){
        var s = "<tr>";
    s += appendTD(n1 + "*" + n2);
    s += appendTD(Mul(n1 , n2));
    s += appendTD(n1*n2);
    s += "</tr>";
    document.write(s);
    }
    function appendTD(s){
        return "<td>"+s+"</td>"
    }
    </script>
    <body>
    <table border=1 width="50%">
    <tr>
    <td>±í&#180;&#239;&#202;&#189;</td>
    <td>&#190;&#171;&#200;·&#179;&#203;·¨</td>
    <td>js &#179;&#203;·¨(*)</td>
    </tr>
    <script language="JavaScript">
        test(2.11, 2.1);
        test(200.01, 0.003);
        test(200.01, 399.9999);
        test(0.01, 0.09999);
        test(0.6, 3);
    </script>
    </table>
    </body>
    </html>
      

  2.   

    不好意思, 中文问题:<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    </head>
    <script language="JavaScript">
    function Mul(n1,n2){
        var m=0;
    var s1=n1.toString();
    var s2=n2.toString();
        try{
        m+=s1.split(".")[1].length;
    }catch(e){}
        try{
        m+=s2.split(".")[1].length;
    }catch(e){}
        return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
    }
    function test(n1, n2){
        var s = "<tr>";
    s += appendTD(n1 + "*" + n2);
    s += appendTD(Mul(n1 , n2));
    s += appendTD(n1*n2);
    s += "</tr>";
    document.write(s);
    }
    function appendTD(s){
        return "<td>"+s+"</td>"
    }
    </script>
    <body>
    <table border=1 width="50%">
    <tr>
    <td>表达式</td>
    <td>精确乘法</td>
    <td>js 乘法(*)</td>
    </tr>
    <script language="JavaScript">
        test(2.11, 2.1);
        test(200.01, 0.003);
        test(200.01, 399.9999);
        test(0.01, 0.09999);
        test(0.6, 3);
    </script>
    </table>
    </body>
    </html>
      

  3.   

    到javascript帮助文件中找Math.round()函数的用法
      

  4.   

    Math.round(parseFloat(需要四舍五入的数据)*10)/10 这样是保留1位小数
    Math.round(parseFloat(需要四舍五入的数据)*100)/100 这样是保留两位小数
    Math.round(parseFloat(需要四舍五入的数据)*1000)/1000 这样就保留三位小数了,以此类推