====== Number parsing ======
ACSUtils provides functions to convert strings to numbers.
===== Bases =====
The parsed numbers can be written in any base from 2 to 36. In bases over 10, letters of the alphabet are used as digits.
If a base is not explicitly specified or is set to 0, base prefixes can be used:
* ''0x'' – base 16
* ''0o'' – base 8
* ''0b'' – base 2
For example, ''%%"0xFF"%%'' is parsed as 256.
If no base prefix is present, base 10 is used by default
If a base is specified when parsing the number, base prefixes are **not** supported and their presence is treated as error.
===== Errors =====
The following errors can happen while parsing a number:
* ''PARSENUMBER_SUCCESS'' -- no error
* ''PARSENUMBER_OVERFLOW'' -- the number is too big to fit into a variable, the result will be either [[constants:INT_MAX]] or [[constants:INT_MIN]].
* ''PARSENUMBER_BADFORMAT'' - the number could not be parsed at all.
===== Simple functions =====
These simply return 0 on error, b:
* [[functions:atoi]]
* [[functions:atof]]
==== Examples ====
atoi("123") -> 123
atof("123.456") -> 123.456
atoi("abc") -> 0
===== Complex functions =====
These return error status and result, and allow specifying an arbitrary base:
* [[functions:ParseInt]]
* [[functions:ParseFixed]]
Error statuses are:
==== Examples ====
ParseInt("123", 0);
r1 -> PARSENUMBER_SUCCESS
r2 -> 123
ParseInt("10", 8); // In base 8
r1 -> PARSENUMBER_SUCCESS
r2 -> 8
ParseInt("999999999