Home > Web Front-end > JS Tutorial > Various methods of retaining two decimal places in javascript_javascript skills

Various methods of retaining two decimal places in javascript_javascript skills

WBOY
Release: 2016-05-16 15:25:04
Original
2263 people have browsed it

The first method: javascript implementation of automatic zero padding code example with two decimal places and one place:
The first method introduces how to achieve the effect of retaining two decimal places for numbers. If the original decimal places of a number are less than two, then the missing ones will be automatically filled with zeros. This is also for the purpose of uniformity. First, See code example:

function returnFloat(value){
 var value=Math.round(parseFloat(value)*100)/100;
 var xsd=value.toString().split(".");
 if(xsd.length==1){
 value=value.toString()+".00";
 return value;
 }
 if(xsd.length>1){
 if(xsd[1].length<2){
  value=value.toString()+"0";
 }
 return value;
 }
}
var num=3.1;
console.log(returnFloat(num));
Copy after login

The above code achieves our requirements. Here is an introduction to its implementation process.
Code comments:
1.function returnFloat(value){}, the parameter is the number to be converted.
2.var value=Math.round(parseFloat(value)*100)/100, This should be the core of the function, parseFloat(value) converts the parameter into a floating point number, because the parameter may be The string is multiplied by 100 because two decimal places must be retained. First, move the decimal point two digits to the right, then use the Math.round() method to perform rounding calculations, and finally divide by 100. This achieves the purpose of retaining two decimal places. decimal places, and also has a rounding effect, but this is not perfect. If the number of decimal places in the parameter number itself is greater than or equal to 2, it is OK, such as 3.1415, but there is still no perfect implementation such as 3 or 3.0. Continue to see below.
3.var xsd=value.toString().split("."), use dot "." value to separate it into an array.
4.if(xsd.length==1){value=value.toString()+".00";return value;}, if the length of the array is 1, that is to say, there is no decimal, then it will be this number Adding two zeros, for example, 3 will be converted to 3.00.
5.

if(xsd.length>1){
 if(xsd[1].length<2){
  value=value.toString()+"0";
 }
 return value;
 }
Copy after login

if(xsd.length>1) is used to determine whether the length of the number is greater than 1, that is, whether the number has a decimal. If there is a decimal, but the number of decimal digits is less than 2, which is similar to 3.1, it will be in Adding a 0 after it will convert it to 3.10.

Second method: Summarize multiple methods of functions in JS that format data with two decimal places

The best way:

It seems like this is how to keep two people

 var a = 9.39393; 
 alert(a.toFixed(2));
Copy after login

Instructions:

alert(Number.toFixed(9.39393));
The return is 9.39
But it is only supported by versions above IE5.5.

Other methods:

Method 1:

 function roundFun(numberRound,roundDigit) //四舍五入,保留位数为roundDigit  
 { 
 if (numberRound>=0) 
 { 
 var tempNumber = parseInt((numberRound * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit); 
 return tempNumber; 
 } 
 else  
 { 
 numberRound1=-numberRound 
 var tempNumber = parseInt((numberRound1 * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit); 
 return -tempNumber; 
 } 
   } 
Copy after login

Method 2:

<script> 
 tmp = "1234567.57232" 
 result = tmp.substr(0,tmp.indexOf(".")+3); 
 alert(result); 
 </script> 
Copy after login

The third method: javascript retains two decimal places code

<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> 
Copy after login

The above are various methods of retaining two decimal places in JavaScript. I hope it will be helpful to everyone's learning.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template