JavaScript digits keep digits after decimal

Source: Internet
Author: User

See a lot of people have this reserved number of decimal point after the demand, but most of them write a function to intercept, but also consider rounding up what, it is quite complicated to write.

In fact, the number object of JavaScript has a method of preserving decimals after the decimal point: toFixed, which is rounded.

I was afraid IE6 not support this method, see MDN Inside said this method is javascript1.5 only came out. Specifically under the IE6 to try, is fully supported

Toexponential ([fractiondigits]): Returns the number in scientific notation format, where the fractiondigits value is retained after the decimal point.

ToFixed ([fractiondigits]): Returns a number to the specified number of decimal places, where the fractiondigits value is retained after the decimal point.

Toprecision ([precision]): Returns a number to the specified precision (this precision does not refer to a few after the decimal point), where precision is the specified precision value.

Examples are as follows:

The code is as follows

var n = 12345.6789;

N.tofixed (); Returns 12346

N.tofixed (1); Returns 12345.7

N.tofixed (6); Returns 12345.678900

(1.23e+20). toFixed (2); Returns 123000000000000000000.00

(1.23e-10). toFixed (2); Returns 0.00

2.34.toFixed (1); Returns 2.3

-2.34.tofixed (1); Returns-2.3

( -2.24). toFixed (1); Returns-2.2

Conversion function, this code comes from a foreign forum.

The code is as follows

function Roundnumber (number,decimals) {

var newstring;//the new rounded number

Decimals = number (decimals);

if (Decimals < 1) {

NewString = (Math.Round (number)). ToString ();

} else {

var numstring = number.tostring ();

if (Numstring.lastindexof (".") = = 1) {//If there no decimal point

Numstring + = ".";/ /Give it one at the end

}

var cutoff = Numstring.lastindexof (".") + decimals;//the point in which to truncate the number

var D1 = number (numstring.substring (cutoff,cutoff+1));/The value of the last decimal place, we ' ll end

var d2 = number (numstring.substring (cutoff+1,cutoff+2));/The next decimal, after the last one we want

if (D2 >= 5) {//Do we need to round up on all? If not, the string would just be truncated

if (D1 = = 9 && cutoff > 0) {//If the digit is 9, find a new cutoff point

while (Cutoff > 0 && (d1 = 9 | | | isNaN (d1))) {

if (D1!= ".") {

cutoff-= 1;

D1 = number (numstring.substring (cutoff,cutoff+1));

} else {

cutoff-= 1;

}

}

}

D1 + 1;

}

if (D1 = = 10) {

numstring = numstring.substring (0, Numstring.lastindexof ("."));

var roundednum = number (numstring) + 1;

NewString = roundednum.tostring () + '. ';

} else {

NewString = numstring.substring (0,cutoff) + d1.tostring ();

}

}

if (Newstring.lastindexof (".") = = 1) {//Do this again, to the new string

NewString + = ".";

}

var decs = (newstring.substring (Newstring.lastindexof (".") +1)). length;

for (Var i=0;i

var newnumber = number (newstring)//Make it a number if

Document.roundform.roundedfield.value = newstring; Output to the form field (change for your purposes)

}

Related Article

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

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.