js四捨五入

3317 ワード

javascriptは2桁の小数を保持する例:
<script type="text/javascript"> 
    //        
    //  :        ,     2  
    function toDecimal(x) { 
      var f = parseFloat(x); 
      if (isNaN(f)) { 
        return; 
      } 
      f = Math.round(x*100)/100; 
      return f; 
    } 
  
  
    //   2   , :2,  2    00. 2.00 
    function toDecimal2(x) { 
      var f = parseFloat(x); 
      if (isNaN(f)) { 
        return false; 
      } 
      var f = Math.round(x*100)/100; 
      var s = f.toString(); 
      var rs = s.indexOf('.'); 
      if (rs < 0) { 
        rs = s.length; 
        s += '.'; 
      } 
      while (s.length <= rs + 2) { 
        s += '0'; 
      } 
      return s; 
    } 
      
    function fomatFloat(src,pos){   
       return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);   
    } 
    //     
    alert("  2   :" + toDecimal(3.14159267)); 
    alert("    2   :" + toDecimal2(3.14159267)); 
    alert("  2   :" + toDecimal(3.14559267)); 
    alert("    2   :" + toDecimal2(3.15159267)); 
    alert("  2   :" + fomatFloat(3.14559267, 2)); 
    alert("  1   :" + fomatFloat(3.15159267, 1)); 
      
    //     
    alert("  2   :" + 1000.003.toFixed(2)); 
    alert("  1   :" + 1000.08.toFixed(1)); 
    alert("  1   :" + 1000.04.toFixed(1)); 
    alert("  1   :" + 1000.05.toFixed(1)); 
      
    //     
    alert(3.1415.toExponential(2)); 
    alert(3.1455.toExponential(2)); 
    alert(3.1445.toExponential(2)); 
    alert(3.1465.toExponential(2)); 
    alert(3.1665.toExponential(1)); 
    //   n ,  n  
    alert("       2 " + 3.1415.toPrecision(2)); 
    alert("       3 " + 3.1465.toPrecision(3)); 
    alert("       2 " + 3.1415.toPrecision(2)); 
    alert("       2 " + 3.1455.toPrecision(2)); 
    alert("       5 " + 3.141592679287.toPrecision(5)); 
  </script>