How do I convert a string to an integer in JavaScript?
32 Answers
The simplest way would be to use the native Number
function:
var x = Number("1000")
If that doesn't work for you, then there are the parseInt, unary plus, parseFloat with floor, and Math.round methods.
parseInt()
var x = parseInt("1000", 10); // You want to use radix 10
// So you get a decimal number even with a leading 0 and an old browser ([IE8, Firefox 20, Chrome 22 and older][1])
Unary plus
If your string is already in the form of an integer:
var x = +"1000";
floor()
If your string is or might be a float and you want an integer:
var x = Math.floor("1000.01"); // floor() automatically converts string to number
Or, if you're going to be using Math.floor several times:
var floor = Math.floor;
var x = floor("1000.01");
parseFloat()
If you're the type who forgets to put the radix in when you call parseInt, you can use parseFloat and round it however you like. Here I use floor.
var floor = Math.floor;
var x = floor(parseFloat("1000.01"));
round()
Interestingly, Math.round (like Math.floor) will do a string to number conversion, so if you want the number rounded (or if you have an integer in the string), this is a great way, maybe my favorite:
var round = Math.round;
var x = round("1000"); // Equivalent to round("1000", 0)
-
10Update to 2015: as of ECMAScript 5, strings with a leading zero "0" also get default radix 10, instead of 8. Explicitly specifying radix 10 is only necessary for older browsers. kangax.github.io/compat-table/es5/…– GrilseCommented Jul 30, 2015 at 10:31
-
77Note that Number('') succeeds (returning 0), even though most people wouldn't consider the empty string to represent a valid number. And parseInt('3q') succeeds (returning 3) even though most people wouldn't consider '3q' to be a valid number. Commented Sep 3, 2015 at 22:15
-
22Heads up. Both
parseInt
andparseFloat
happily accepts letters. OnlyNumber
returnsNaN
consistently. Commented Mar 14, 2017 at 9:39 -
12In my opinion, parsing an integer should result with exception/
NaN
for every value which is not exactly an integer. Therefore none of these work asNumber('2.2')
coerces to2
andNumber('')
coerce to 0. Commented Mar 27, 2017 at 15:23 -
3parseInt("6-4") returns 6, whereas Number("6-4") returns NaN.... this could be a significant different if you're testing strings that might be guids, for example. Commented Jun 6, 2017 at 15:31
Try parseInt function:
var number = parseInt("10");
But there is a problem. If you try to convert "010" using parseInt function, it detects as octal number, and will return number 8. So, you need to specify a radix (from 2 to 36). In this case base 10.
parseInt(string, radix)
Example:
var result = parseInt("010", 10) == 10; // Returns true
var result = parseInt("010") == 10; // Returns false
Note that parseInt
ignores bad data after parsing anything valid.
This guid will parse as 51:
var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true
-
6Radix is no longer required in 2016.– user663031Commented Oct 1, 2016 at 21:23
-
9It might not be for newer browsers but radix is still required for backwards compatibility. Commented Jan 20, 2017 at 14:21
-
6Note that this ignores bad data after the number. For example,
parseInt('0asdf', 10)
produces0
.– SamCommented Apr 19, 2018 at 1:08 -
3LATEST: parseInt("010") == 10; // Returns true now - press ctrl-shift-j and paste that into your browser console to see for yourself :)– OCDevCommented May 22, 2022 at 18:06
-
There are two main ways to convert a string to a number in JavaScript. One way is to parse it and the other way is to change its type to a Number. All of the tricks in the other answers (e.g., unary plus) involve implicitly coercing the type of the string to a number. You can also do the same thing explicitly with the Number function.
Parsing
const parsed = parseInt("97", 10);
parseInt and parseFloat are the two functions used for parsing strings to numbers. Parsing will stop silently if it hits a character it doesn't recognize, which can be useful for parsing strings like "92px", but it's also somewhat dangerous since it won't give you any kind of error on bad input, instead you'll get back NaN unless the string starts with a number. The whitespace at the beginning of the string is ignored. Here's an example of it doing something different from what you want, and giving no indication that anything went wrong:
const widgetsSold = parseInt("97,800", 10); // widgetsSold is now 97
It's good practice to always specify the radix as the second argument. In older browsers, if the string started with a 0, it would be interpreted as octal if the radix wasn't specified which took a lot of people by surprise. The behavior for hexadecimal is triggered by having the string start with 0x if no radix is specified, e.g., 0xff
. The standard actually changed with ECMAScript 5, so modern browsers no longer trigger octal when there's a leading 0 if no radix has been specified. parseInt understands radixes up to base 36, in which case both upper and lower case letters are treated as equivalent.
Changing the Type of a String to a Number
All of the other tricks mentioned above that don't use parseInt, involve implicitly coercing the string into a number. I prefer to do this explicitly,
var cast = Number("97");
This has different behavior to the parse methods (although it still ignores whitespace). It's more strict: if it doesn't understand the whole of the string than it returns NaN
, so you can't use it for strings like 97px
. Since you want a primitive number rather than a Number wrapper object, make sure you don't put new
in front of the Number function.
Obviously, converting to a Number gives you a value that might be a float rather than an integer, so if you want an integer, you need to modify it. There are a few ways of doing this:
var rounded = Math.floor(Number("97.654")); // other options are Math.ceil, Math.round
var fixed = Number("97.654").toFixed(0); // rounded rather than truncated
var bitwised = Number("97.654")|0; // do not use for large numbers
Any bitwise operator (here I've done a bitwise or, but you could also do double negation as in an earlier answer or a bit shift) will convert the value to a 32 bit integer, and most of them will convert to a signed integer. Note that this will not do want you want for large integers. If the integer cannot be represented in 32 bits, it will wrap.
~~"3000000000.654" === -1294967296
// This is the same as
Number("3000000000.654")|0
"3000000000.654" >>> 0 === 3000000000 // unsigned right shift gives you an extra bit
"300000000000.654" >>> 0 === 3647256576 // but still fails with larger numbers
To work correctly with larger numbers, you should use the rounding methods
Math.floor("3000000000.654") === 3000000000
// This is the same as
Math.floor(Number("3000000000.654"))
Bear in mind that coercion understands exponential notation and Infinity, so 2e2
is 200
rather than NaN, while the parse methods don't.
Custom
It's unlikely that either of these methods do exactly what you want. For example, usually I would want an error thrown if parsing fails, and I don't need support for Infinity, exponentials or leading whitespace. Depending on your use case, sometimes it makes sense to write a custom conversion function.
Always check that the output of Number or one of the parse methods is the sort of number you expect. You will almost certainly want to use isNaN
to make sure the number is not NaN (usually the only way you find out that the parse failed).
-
8It depends whether you want your code to also accept
97,8,00
and similar or not. A simple trick is to do a.replace(/[^0-9]/g, "")
which will remove all non digits from your string and then do the conversion afterwards. This of course will ignore all kinds of crazy strings that you should probably error on rather than just parse... Commented Feb 5, 2015 at 0:09 -
7@kybernetikos should probably be
.replace(/[^0-9.]/g, "")
, otherwise "1.05" will become "105".– J.SteveCommented Jun 8, 2015 at 17:18 -
Quite right, although I wouldn't use something like that for important code anyway - there are so many ways it can let something through you really don't want to let through. Commented Jun 11, 2015 at 8:07
-
3I found using Number much more readable in code so thank you for pointing it out as a solution. Commented Sep 7, 2016 at 18:16
-
2@kybernetikos In
var fixed = Number("97.654").toFixed(0); // rounded rather than truncated
, we are getting astring
(because of the.toFixed
method) instead of anumber
(integer). If we want the rounded integer it's probably better to just useMath.round("97.654");
Commented Feb 17, 2018 at 9:58
ParseInt() and + are different.
parseInt("10.3456") // returns 10
+"10.3456" // returns 10.3456
-
1
-
Always specify the base:
parseInt("10.3456", 10)
if you don't want to have a surprise one of these days, cf developer.mozilla.org/en/docs/Web/JavaScript/Reference/…Be careful — this does not always default to 10!
– Will59Commented Mar 8, 2024 at 8:59
Fastest
var x = "1000"*1;
Test
Here is little comparison of speed (macOS only)... :)
For Chrome, 'plus' and 'mul' are fastest (>700,000,00 op/sec), 'Math.floor' is slowest. For Firefox, 'plus' is slowest (!) 'mul' is fastest (>900,000,000 op/sec). In Safari 'parseInt' is fastest, 'number' is slowest (but results are quite similar, >13,000,000 <31,000,000). So Safari for cast string to int is more than 10x slower than other browsers. So the winner is 'mul' :)
You can run it on your browser by this link https://jsperf.com/js-cast-str-to-number/1
I also tested var x = ~~"1000";
. On Chrome and Safari, it is a little bit slower than var x = "1000"*1
(<1%), and on Firefox it is a little bit faster (<1%).
-
8There's no significant difference between the results of tests A, B, E and F - they're all essentially the same, Commented Jun 4, 2020 at 19:07
-
I got
~~"1000"
faster on Chrome, but they are all so close– Elijah MCommented Jun 23, 2020 at 16:44 -
The linked page is down, but honestly I don't expect the pictured results to change much. Commented Jul 8, 2024 at 18:38
I use this way of converting string to number:
var str = "25"; // String
var number = str*1; // Number
So, when multiplying by 1, the value does not change, but JavaScript automatically returns a number.
But as it is shown below, this should be used if you are sure that the str
is a number (or can be represented as a number), otherwise it will return NaN - not a number.
You can create simple function to use, e.g.,
function toNumber(str) {
return str*1;
}
-
Please review Why not upload images of code/errors when asking a question? (e.g., "Images should only be used to illustrate problems that can't be made clear in any other way, such as to provide screenshots of a user interface.") and do the right thing (it covers answers and program output as well). Thanks in advance. Commented Nov 9, 2022 at 1:25
Try parseInt.
var number = parseInt("10", 10); //number will have value of 10.
I love this trick:
~~"2.123"; //2
~~"5"; //5
The double bitwise negative drops off anything after the decimal point AND converts it to a number format. I've been told it's slightly faster than calling functions and whatnot, but I'm not entirely convinced.
Another method I just saw here (a question about the JavaScript >>> operator, which is a zero-fill right shift) which shows that shifting a number by 0 with this operator converts the number to a uint32 which is nice if you also want it unsigned. Again, this converts to an unsigned integer, which can lead to strange behaviors if you use a signed number.
"-2.123" >>> 0; // 4294967294
"2.123" >>> 0; // 2
"-5" >>> 0; // 4294967291
"5" >>> 0; // 5
-
This only works for 32bit numbers. Bitwise operations will forcefully truncate larger values, so
parseInt("4294967296")
and~~"4294967296"
end up with different results. Namely,parseInt
will return4294967296
while~~
will return0
.– VLAZCommented Dec 28, 2022 at 8:08
Please see the below example. It will help answer your question.
Example Result
parseInt("4") 4
parseInt("5aaa") 5
parseInt("4.33333") 4
parseInt("aaa"); NaN (means "Not a Number")
By using parseint function, it will only give op of integer present and not the string.
-
Always specify the base:
parseInt("20", 10)
if you don't want to have a surprise one of these days, cf developer.mozilla.org/en/docs/Web/JavaScript/Reference/…Be careful — this does not always default to 10!
– Will59Commented Mar 8, 2024 at 9:01
In JavaScript, you can do the following:
ParseInt
parseInt("10.5") // Returns 10
Multiplying with 1
var s = "10";
s = s*1; // Returns 10
Using the unary operator (+)
var s = "10";
s = +s; // Returns 10
Using a bitwise operator
(Note: It starts to break after 2140000000
. Example: ~~"2150000000" = -2144967296
)
var s = "10.5";
s = ~~s; // Returns 10
Using Math.floor() or Math.ceil()
var s = "10";
s = Math.floor(s) || Math.ceil(s); // Returns 10
-
This is more or less a repeat of Nosredna's answer from 2009. Commented Nov 9, 2022 at 2:11
-
@PeterMortensen It didn't have bitwise operator and multiplying with 1 Commented Nov 10, 2022 at 12:53
Beware if you use parseInt to convert a float in scientific notation! For example:
parseInt("5.6e-14")
will result in
5
instead of
0
-
17Using
parseInt
wouldn't work right for a float.parseFloat
works properly in this case. Commented Oct 14, 2011 at 15:57 -
This is a valid concern - even parseInt("2e2") which is an integer, would be 200 if parseInt understood exponential notation, but actually returns 2, because it doesn't. Commented Jul 3, 2020 at 10:54
-
@kybernetikos - IMHO it is not reasonable to expect parseInt to comprehend a float representation. More appropriate to parseFloat or Number, then round or truncate to int as desired. That is a clearer statement of intent. Commented Aug 27, 2020 at 0:20
To convert a String into Integer, I recommend using parseFloat and not parseInt. Here's why:
Using parseFloat:
parseFloat('2.34cms') //Output: 2.34
parseFloat('12.5') //Output: 12.5
parseFloat('012.3') //Output: 12.3
Using parseInt:
parseInt('2.34cms') //Output: 2
parseInt('12.5') //Output: 12
parseInt('012.3') //Output: 12
So if you have noticed parseInt discards the values after the decimals, whereas parseFloat lets you work with floating point numbers and hence more suitable if you want to retain the values after decimals. Use parseInt if and only if you are sure that you want the integer value.
-
15The question was "How do I convert a String into an integer in javascript" Commented Sep 2, 2015 at 14:08
We can use +(stringOfNumber)
instead of using parseInt(stringOfNumber)
.
Example: +("21")
returns int of 21, like the parseInt("21")
.
We can use this unary "+" operator for parsing float too...
-
1But you cannot use it in formulas! I.e. (1+("21"))*10 === 1210 ! Commented Sep 22, 2015 at 14:50
-
2@AlexanderVasilyev I think you can, wouldn't you just use an extra parenthesis around the
+
? Commented Oct 30, 2015 at 2:27 -
@NiCkNewman I get +("21") from the example in the answer we comment. Commented Oct 31, 2015 at 10:01
-
2I really dislike this solution. It's not explicit like
parseInt
is. A common implementation isconst myNumber = +myNumberAsAString
which looks like a standard+=
or=+
operator at first glance. Also If used incorrectly it could lead to concatenation errors. This solution is based on the fact that 0 is assumed as the left-hand side when no number is provided. Commented Mar 29, 2019 at 14:58 -
2I agree with @StormMuller. If for some reason a coder wishes more brevity than
parseInt
, with one more character can make it a bit clearer:0+"..."
. That makes it easier to not misunderstand what the result will be, however it still requires some mental thought. So still "smells". Clean coding is saying what you mean: useparseInt
. Commented Aug 27, 2020 at 0:25
There are many ways in JavaScript to convert a string to a number value... All are simple and handy. Choose the way which one works for you:
var num = Number("999.5"); //999.5
var num = parseInt("999.5", 10); //999
var num = parseFloat("999.5"); //999.5
var num = +"999.5"; //999.5
Also, any Math operation converts them to number, for example...
var num = "999.5" / 1; //999.5
var num = "999.5" * 1; //999.5
var num = "999.5" - 1 + 1; //999.5
var num = "999.5" - 0; //999.5
var num = Math.floor("999.5"); //999
var num = ~~"999.5"; //999
My prefer way is using +
sign, which is the elegant way to convert a string to number in JavaScript.
Also as a side note: MooTools has the function toInt() which is used on any native string (or float (or integer)).
"2".toInt() // 2
"2px".toInt() // 2
2.toInt() // 2
-
7The third example causes a
SyntaxError
, you should use a double dot, e.g.:2..toInt();
the first dot will end the representation of aNumber
literal and the second dot is the property accessor. Commented Jan 25, 2010 at 6:41 -
5
String to Number in JavaScript:
Unary + (most recommended)
+numStr
is easy to use and has better performance compared with others- Supports both integers and decimals
console.log(+'123.45') // => 123.45
Some other options:
Parsing Strings:
parseInt(numStr)
for integersparseFloat(numStr)
for both integers and decimals
console.log(parseInt('123.456')) // => 123
console.log(parseFloat('123')) // => 123
JavaScript Functions
Math functions like
round(numStr), floor(numStr), ceil(numStr)
for integersNumber(numStr)
for both integers and decimals
console.log(Math.floor('123')) // => 123
console.log(Math.round('123.456')) // => 123
console.log(Math.ceil('123.454')) // => 124
console.log(Number('123.123')) // => 123.123
Unary Operators
All basic unary operators,
+numStr
,numStr-0
,1*numStr
,numStr*1
, andnumStr/1
All support both integers and decimals
Be cautious about
numStr+0
. It returns a string.
console.log(+'123') // => 123
console.log('002'-0) // => 2
console.log(1*'5') // => 5
console.log('7.7'*1) // => 7.7
console.log(3.3/1) // =>3.3
console.log('123.123'+0, typeof ('123.123' + 0)) // => 123.1230 string
Bitwise Operators
- Two tilde
~~numStr
or left shift 0,numStr<<0
- Supports only integers, but not decimals
console.log(~~'123') // => 123
console.log('0123'<<0) // => 123
console.log(~~'123.123') // => 123
console.log('123.123'<<0) // => 123
// Parsing
console.log(parseInt('123.456')) // => 123
console.log(parseFloat('123')) // => 123
// Function
console.log(Math.floor('123')) // => 123
console.log(Math.round('123.456')) // => 123
console.log(Math.ceil('123.454')) // => 124
console.log(Number('123.123')) // => 123.123
// Unary
console.log(+'123') // => 123
console.log('002'-0) // => 2
console.log(1*'5') // => 5
console.log('7.7'*1) // => 7.7
console.log(3.3/1) // => 3.3
console.log('123.123'+0, typeof ('123.123'+0)) // => 123.1230 string
// Bitwise
console.log(~~'123') // => 123
console.log('0123'<<0) // => 123
console.log(~~'123.123') // => 123
console.log('123.123'<<0) // => 123
-
2
-
Basically consolidation of all posible options that I know which also syncs with previous answers. Commented Dec 10, 2022 at 11:48
Try str - 0
to convert string
to number
.
> str = '0'
> str - 0
0
> str = '123'
> str - 0
123
> str = '-12'
> str - 0
-12
> str = 'asdf'
> str - 0
NaN
> str = '12.34'
> str - 0
12.34
Here are two links to compare the performance of several ways to convert string to int
-
1
-
-
@PeterMortensen, the
>
prompots is from the console of Chrome.– zangwCommented Nov 9, 2022 at 2:42
In my opinion, no answer covers all edge cases as parsing a float should result in an error.
function parseInteger(value) {
if(value === '') return NaN;
const number = Number(value);
return Number.isInteger(number) ? number : NaN;
}
parseInteger("4") // 4
parseInteger("5aaa") // NaN
parseInteger("4.33333") // NaN
parseInteger("aaa"); // NaN
-
2Returning Not A Number is a bit aggressive for a float, don't you think? Commented Mar 27, 2017 at 15:20
-
2It's
parseInteger
, notparseNumber
. I guess every solutions is a workaround since JS does not support integers and floats as separate types. We could returnnull
instead ofNaN
, if Not A Number is misleading. Commented Mar 27, 2017 at 15:25
Here is the easiest solution
let myNumber = "123" | 0;
More easy solution
let myNumber = +"123";
-
Actually
| 0
is quite handy. it's not straightforward though. (+"123.1"
is123.1
which is not integer) I would use| 0
for a dodgy casting without unexpected errors, butparseInt(str, 10)
for else. Commented Nov 30, 2024 at 8:43
The easiest way would be to use +
like this
const strTen = "10"
const numTen = +strTen // string to number conversion
console.log(typeof strTen) // string
console.log(typeof numTen) // number
-
That is very likely already covered in previous answers. Commented Nov 9, 2022 at 2:11
I actually needed to "save" a string as an integer, for a binding between C and JavaScript, so I convert the string into an integer value:
/*
Examples:
int2str( str2int("test") ) == "test" // true
int2str( str2int("t€st") ) // "t¬st", because "€".charCodeAt(0) is 8364, will be AND'ed with 0xff
Limitations:
maximum 4 characters, so it fits into an integer
*/
function str2int(the_str) {
var ret = 0;
var len = the_str.length;
if (len >= 1) ret += (the_str.charCodeAt(0) & 0xff) << 0;
if (len >= 2) ret += (the_str.charCodeAt(1) & 0xff) << 8;
if (len >= 3) ret += (the_str.charCodeAt(2) & 0xff) << 16;
if (len >= 4) ret += (the_str.charCodeAt(3) & 0xff) << 24;
return ret;
}
function int2str(the_int) {
var tmp = [
(the_int & 0x000000ff) >> 0,
(the_int & 0x0000ff00) >> 8,
(the_int & 0x00ff0000) >> 16,
(the_int & 0xff000000) >> 24
];
var ret = "";
for (var i=0; i<4; i++) {
if (tmp[i] == 0)
break;
ret += String.fromCharCode(tmp[i]);
}
return ret;
}
-
5That's an interesting way to store and retrieve 4-byte values. It doesn't answer the conventional interpretation of the question: how to convert a string representation of a number into an integer value. Regardless, your
int2str
function stops if a byte is 0, which could be a legitimate element within the value, so theif
...break
should be removed so you get a complete 4-byte value returned. Commented Mar 16, 2017 at 12:47
function parseIntSmarter(str) {
// ParseInt is bad because it returns 22 for "22thisendsintext"
// Number() is returns NaN if it ends in non-numbers, but it returns 0 for empty or whitespace strings.
return isNaN(Number(str)) ? NaN : parseInt(str, 10);
}
-
However, be aware that
Number
supports some special formats, thatparseInt
will incorrectly interpret. For example,Number("0x11")
=>17
, thenparseInt
will return0
. It might be better to search for non-digits, if goal is to reject all non-Integers. Or could dovar f = Number(str); return f.isInteger() ? f : NaN;
Depending on exactly what you want to allow/reject. Commented Aug 27, 2020 at 0:42
The safest way to ensure you get a valid integer:
let integer = (parseInt(value, 10) || 0);
Examples:
// Example 1 - Invalid value:
let value = null;
let integer = (parseInt(value, 10) || 0);
// => integer = 0
// Example 2 - Valid value:
let value = "1230.42";
let integer = (parseInt(value, 10) || 0);
// => integer = 1230
// Example 3 - Invalid value:
let value = () => { return 412 };
let integer = (parseInt(value, 10) || 0);
// => integer = 0
Number()
Number(" 200.12 ") // Returns 200.12
Number("200.12") // Returns 200.12
Number("200") // Returns 200
parseInt()
parseInt(" 200.12 ") // Return 200
parseInt("200.12") // Return 200
parseInt("200") // Return 200
parseInt("Text information") // Returns NaN
parseFloat()
It will return the first number
parseFloat("200 400") // Returns 200
parseFloat("200") // Returns 200
parseFloat("Text information") // Returns NaN
parseFloat("200.10") // Return 200.10
Math.floor()
Round a number to the nearest integer
Math.floor(" 200.12 ") // Return 200
Math.floor("200.12") // Return 200
Math.floor("200") // Return 200
You can use plus. For example:
var personAge = '24';
var personAge1 = (+personAge)
then you can see the new variable's type bytypeof personAge1
; which is number
.
-
Could you please explain what + is in this case and how the casting happens? Commented Dec 23, 2020 at 6:42
Summing the multiplication of digits with their respective power of ten:
i.e: 123 = 100+20+3 = 1100 + 2+10 + 31 = 1*(10^2) + 2*(10^1) + 3*(10^0)
function atoi(array) {
// Use exp as (length - i), other option would be
// to reverse the array.
// Multiply a[i] * 10^(exp) and sum
let sum = 0;
for (let i = 0; i < array.length; i++) {
let exp = array.length - (i+1);
let value = array[i] * Math.pow(10, exp);
sum += value;
}
return sum;
}
As of ES2015 you can use Math.trunc()
to convert strings to integer:
Math.trunc("33.33") // returns 33
Math.trunc("-5999999999.99999") // returns -5999999999
Or, if you need to support old browsers or you just prefer to avoid using a function, you can use the remainder operator trick to get the remainder when dividing by 1, then subtract. Unlike the answers that use bitwise operators, this successfully handles large numbers (with the exception of Infinity which becomes NaN.)
var a = "-5999999999.99999"
a-=a%1// converts a to -5999999999
Finally, if you need to handle Infinity, there is this split trick that works with non-negative numbers by splitting on a decimal point thereby removing the decimal portion of the string followed by converting to a number with unary +. This also works when converting strings without decimals:
var a = "5999999999.99999"
a = +a.split(".")[0];// converts a to 5999999999
Note that all of the above solutions will convert an empty string to 0. If that's not what you want then you need to check for that condition first.
Another option is to double XOR the value with itself:
var i = 12.34;
console.log('i = ' + i);
console.log('i ⊕ i ⊕ i = ' + (i ^ i ^ i));
This will output:
i = 12.34
i ⊕ i ⊕ i = 12
-
Perhaps elaborate in your answer? Why does that work? (But *********** without *********** "Edit:", "Update:", or similar - the answer should appear as if it was written today.) Commented Nov 9, 2022 at 1:57
I only added one plus(+) before string and that was solution!
+"052254" // 52254
function doSth(){
var a = document.getElementById('input').value;
document.getElementById('number').innerHTML = toNumber(a) + 1;
}
function toNumber(str){
return +str;
}
<input id="input" type="text">
<input onclick="doSth()" type="submit">
<span id="number"></span>
123456789.123
is123 456 789,12
infr-FR
) see this discussion