比如 
     1.335 保留2为小数 结果1.34
    1.345 保留2为小数 结果1.34
    1.3451  保留2为小数 结果1.35
其他的四舍六入

解决方案 »

  1.   

    var n = 1.335;
    n = n.toFixed(2); // 1.34
      

  2.   

    toFixed(N)是4舍5入。 帮自己顶下
      

  3.   

    思路:存在争议的仅仅是小数点后的第3位
    先通过正则将小数点第3位的5进行处理
    如:3.145==>3.14
    3.145后随便加几个零===>3.14
    3.145后面只要有不为零的数===>3.146
    然后再通过toFixed(2)进行处理
    <script>
    function ddd(str){
    var r = /^([0-9]+\.\d{2})5[0]*$/g;
    var r1 = /^([0-9]+\.\d{2})5[0-9]*[1-9][0-9]*$/g;
    if(r.test(str)){
    str = str.replace(r,"$1");
    }else if(r1.test(str)){
    str = str.replace(r1,"$16");
    }
    str = parseFloat(str).toFixed(2);
    return str;
    }alert(ddd("3.144"));
    alert(ddd("3.14500"));
    alert(ddd("3.1451"));
    alert(ddd("3.146"));
    </script>
      

  4.   

    <script>
    function ddd(str){
    var r = /^([0-9]+\.[0-9]{1}[0|2|4|6|8])5/g;
    var r1 = /^([0-9]+\.[0-9]{1}[1|3|5|7|9])5/g;
    if(r.test(str)){
    str = str.replace(r,"$1");
    }else if(r1.test(str)){
    str = str.replace(r1,"$16");
    }
    str = parseFloat(str).toFixed(2);
    return str;
    }alert(ddd("3.135"));//3.14
    alert(ddd("3.145"));//3.14
    alert(ddd("3.155"));//3.16
    </script>
      

  5.   

    <script>
    function ddd(str){
    var r  = /^([0-9]+\.[0-9]{1}[0|2|4|6|8])5$/g;
    var r1 = /^([0-9]+\.[0-9]{1}[1|3|5|7|9])5$/g;
    var r2 = /^([0-9]+\.[0-9]{2})5[0]?[1-9]*/g;
    if(r.test(str)){
    str = str.replace(r,"$1");
    }else if(r1.test(str)){
    str = str.replace(r1,"$16");
    }else if(r2.test(str)){
    str = str.replace(r2,"$16");
    }
    str = parseFloat(str).toFixed(2);
    return str;
    }alert(ddd("3.135"));//3.14
    alert(ddd("3.145"));//3.14
    alert(ddd("3.145001"));//3.15
    alert(ddd("3.155"));//3.16
    </script>