Tries to convert its argument to a number. If the argument is already a number or a string convertible to a number, then tonumber returns this number; otherwise, it returns nil.

An optional argument specifies the base to interpret the numeral. The base may be any integer between 2 and 36, inclusive. In bases above 10, the letter '=A=' (in either upper or lower case) represents 10, '=B=' represents 11, and so forth, with '=Z=' representing 35. In base 10 (the default), the number may have a decimal part, as well as an optional exponent part (see Lexical Conventions). In other bases, only unsigned integers are accepted.