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

Source: Internet
Author: User
Tags pow

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

var num =2.446242342//  output result is 2.45

Not rounded
The following processing results are not rounded:
First, put the decimal-side integer First:

Math.floor (15.7784514000 *)/+/  /  output is 15.77

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

Number (15.7784514000.toString (). Match (/^\d+ (?: \. \d{0,2}))  //  output result is 15.77, cannot be used for integers such as 10 must be written as 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:

<script type= "Text/javascript" >//keep two decimal places    //function: Rounding the floating-point number, taking the 2 digits after the decimal point    functionToDecimal (x) {varf =parsefloat (x); if(IsNaN (f)) {return; } f= Math.Round (x*100)/100;returnF; }         //The system retains 2 decimal places, such as: 2, which will be 00 after 2. That is 2.00    functionToDecimal2 (x) {varf =parsefloat (x); if(IsNaN (f)) {return false; }       varf = Math.Round (x*100)/100;vars =f.tostring (); varrs = S.indexof ('. ')); if(Rs < 0) {RS=s.length; S+ = '. '; }        while(s.length <= RS + 2) {s+ = ' 0 '; }       returns; }           functionfomatfloat (src,pos) {returnMath.Round (Src*math.pow (), POS)/math.pow (POS);    }     //RoundingAlert ("Keep 2 decimal places:" + todecimal (3.14159267)); Alert ("Force reserved 2 decimal places:" + toDecimal2 (3.14159267)); Alert ("Keep 2 decimal places:" + todecimal (3.14559267)); Alert ("Force reserved 2 decimal places:" + toDecimal2 (3.15159267)); Alert ("Keep 2 decimal places:" + fomatfloat (3.14559267, 2)); Alert ("Keep 1 decimal places:" + fomatfloat (3.15159267, 1)); //five homes six intoAlert ("Keep 2 decimal places:" + 1000.003.toFixed (2)); Alert ("Keep 1 decimal places:" + 1000.08.toFixed (1)); Alert ("Keep 1 decimal places:" + 1000.04.toFixed (1)); Alert ("Keep 1 decimal places:" + 1000.05.toFixed (1)); //Scientific CountingAlert (3.1415.toExponential (2)); Alert (3.1455.toExponential (2)); Alert (3.1445.toExponential (2)); Alert (3.1465.toExponential (2)); Alert (3.1665.toExponential (1)); //accurate to n-bit, n-bit not includedAlert ("Precision to decimal point 2nd" + 3.1415.toPrecision (2)); Alert ("Accurate to 3rd decimal place" + 3.1465.toPrecision (3)); Alert ("Accurate to 2nd decimal place" + 3.1415.toPrecision (2)); Alert ("Accurate to 2nd decimal place" + 3.1455.toPrecision (2)); Alert ("Accurate to 5th decimal place" + 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

function get () {    var s = 22.127456 + "";     var str = s.substring (0,s.indexof (".") + 3);    

2. Regular expression effect is good

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

3. He is more clever ...

<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:

functionChangetwodecimal_f (x) {varf_x =parsefloat (x); if(IsNaN (f_x)) {alert (' Function:changetwodecimal->parameter error '); return false; }    varf_x = Math.Round (x * 100)/100; varS_x =f_x.tostring (); varPos_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 '; }    returns_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) returns 3.14 Changetwodecimal (3.1) returns 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.