A method of double digit after the decimal point of JS take float type

Source: Internet
Author: User

Transferred from: http://www.jb51.net/article/45884.htm

Below we will introduce how JavaScript preserves two decimal places: rounding The following processing results is rounded:

?
12 varnum =2.446242342;num = num.toFixed(2); // 输出结果为 2.45

do not round up the following processing results will not be rounded: first, decimal-side integers first:

?
12 Math.floor(15.7784514000 * 100) / 100  // 输出结果为 15.77

The second, as a string, uses a regular match:

?
12 Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))  // 输出结果为 15.77,不能用于整数如 10 必须写为10.0000

Note: If it is a negative number, convert it to a positive number and then the negative

JavaScript retains an instance of two decimal places:

?
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 <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>

Use JavaScript to take the float type decimal point two, example 22.127456 to take 22.13, how to do?

1. Discard the fractional part, preserving the whole number of parts

parseint (5/2)

2. Rounding up, with decimals on the integer part plus 1

Math.ceil (5/2)

3, rounded.

Math.Round (5/2)

4, rounding down

Math.floor (5/2)

Alternative approach

1. The stupidest Way

Copy the code code as follows:function get () {var s = 22.127456 + "";     var str = s.substring (0,s.indexof (".") + 3); alert (str); }

2. Regular expression effect is good

Copy the code code as follows:<script type= "Text/javascript" > onload = function () {var a = "23.456322";     var anew; var re =/([0-9]+.[     0-9]{2}) [0-9]*/;     anew = A.replace (Re, "$"); alert (anew); } </script>

3. He is more clever ...

Copy the code code as follows:<script> var num=22.127456; Alert (Math.Round (num*100)/100); </script>

4. Friends who will use new things .... But we need ie5.5+ to support it.

5.js Reserved 2 decimal places (mandatory)

For the number of decimal places greater than 2 bits, with the above function is not a problem, but if less than 2 bits, such as: Changetwodecimal (3.1), will return 3.1, if you must need 3.10 such a format, then you need the following function:

Copy the code code as follows:function Changetwodecimal_f (x) {var f_x = parsefloat (x);         if (IsNaN (f_x)) {alert (' function:changetwodecimal->parameter error ');     return false;     } var f_x = Math.Round (x * 100)/100;     var s_x = f_x.tostring ();     var pos_decimal = S_x.indexof ('. ');         if (Pos_decimal < 0) {pos_decimal = S_x.length;     S_x + = '. ';     } while (S_x.length <= Pos_decimal + 2) {s_x + = ' 0 '; } return s_x; }

Function: Rounding the floating-point number, take 2 digits after the decimal point, if less than 2 bit 0, this function returns the format usage of the string: Changetwodecimal (3.1415926) return 3.14 changetwodecimal (3.1) return 3.10

A method of double digit after the decimal point of JS take float type

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.