====== ParseInt ======
{{tag>number_parsing}}
''int, int ParseInt(str s, int base)''
[[:Multiple_return_values|This function returns multiple values]]
===== Description =====
Parses s as an integer in the specified base. If base is 0, base 10 is used by default and [[:Number prefixes]] are enabled. Supports signs.
Returns status and parsed number. Status is one of the following:
* PARSENUMBER_SUCCESS -- number successfully parsed. r2 contains the result.
* PARSENUMBER_OVERFLOW -- the number is too big to fit into a variable. r2 contains [[constants:INT_MAX]] with the sign of the number.
* PARSENUMBER_BADFORMAT -- the number failed to parse. r2 is unchanged.
For simple parsing use [[atoi]].
===== Examples =====
ParseInt("123", 0);
r1 -> PARSENUMBER_SUCCESS
r2 -> 123
ParseInt("0", 0);
r1 = PARSENUMBER_SUCCESS
r2 -> 0
ParseInt("999999999999", 0)
r1 -> PARSENUMBER_OVERFLOW
r2 -> 2147483647
ParseInt("-99999999999", 0)
r1 -> PARSENUMBER_OVERFLOW
r2 -> -2147483647
ParseInt("not a number", 0)
r1 -> PARSENUMBER_BADFORMAT
ParseInt("1.3", 0) -> 0
r1 -> PARSENUMBER_BADFORMAT
ParseInt("0xff", 0) // Hexadecimal prefix
r1 -> PARSENUMBER_SUCCESS
r2 -> 255
ParseInt("ff", 16) // Parse in hexadecimal
r1 -> PARSENUMBER_SUCCESS
r2 -> 255
ParseInt("0xff", 16) // 0x causes syntax error
r1 -> PARSENUMBER_BADFORMAT
ParseInt