Skip to content Skip to sidebar Skip to footer

Why Does My Textarea (html) Value Show 12,000,000.11 But After Parsefloat The Value Is Only 12?

I am attempting to develop a conversion website that takes a numeric value: 1,200.12 or 1.200,12 or 1200.12 or 1200,12 and have them all interpreted as 1200.12 by parseFloa

Solution 1:

One way would be to strip the comma signs, for example with:

.replace(",", "")

From there you should be able to parseFloat

Updated with fiddle: http://jsfiddle.net/aLv74xpu/2/

Solution 2:

Here is a solution that uses a regular expression to eliminate all commas and all periods, except the last one.

varnumber = "1,234.567.890";
var replaced = number.replace(/,|\.(?=.*\.)/g, "");
var result = parseFloat(replaced);
// result === 1234567.89

Alternatively, you can use this, which treats commas and periods identically, and ignores them all except for the last one.

varnumber = "12.345,67";
var replaced = number.replace(/[.,](?=.*[.,])/g, "").replace(",", ".");
var result = parseFloat(replaced);
// result === 12345.67

Solution 3:

parseFloat parses its argument, a string, and returns a floating point number. If it encounters a character other than a sign (+ or -), numeral (0-9), a decimal point, or an exponent, it returns the value up to that point and ignores that character and all succeeding characters. Leading and trailing spaces are allowed.

From the good MDN network: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

So it is the expected behaviour of parseFloat

Post a Comment for "Why Does My Textarea (html) Value Show 12,000,000.11 But After Parsefloat The Value Is Only 12?"