Returns the numeric representation of an expression.
Number ( expression [, flag = 0] )
|expression||An expression to convert into a number.|
|flag||[optional] Defines behavior.
Can be one of the following:
$NUMBER_AUTO (0) = (default) the result is auto-sized integer. See remarks.
$NUMBER_32BIT (1) = the result is 32bit integer.
$NUMBER_64BIT (2) = the result is 64bit integer.
$NUMBER_DOUBLE (3) = the result is double.
Constants are defined in "AutoItConstants.au3".
Note: A number is consider a value that is either an integer, floating-point value, scientific or hexadecimal notation.
If the string contains a number, the result will be a number.
If the string contains an expression (AutoIt or variable type) with a number at the beginning of the expression, then this value will be returned as a number, will all other value being ignored.
If the string begins with a number but continues with additional non-number characters, the number part is returned as a number only.
If the expression parameter is an arithmetic expression, then expression will be evaluated first before returning the result as a number.
If hexadecimal notation, but values passed 0x are non-hexadeciaml (0-9, A-F), then 0 is returned.
If unary plus/minus is used e.g. +30 or -30, then this will be returned as their positive and negative counterparts.
If all other cases 0 is returned.
In the above cases, the function returns an integer if the mantissa of the result is zero or flag is $NUMBER_32BIT or $NUMBER_64BIT. These flags will truncate a floating-point result.
The default for an integer result is to store it in 32 bits if possible. If not, it is stored in 64 bits.
Binary, Ceiling, Floor, HWnd, Int, Ptr, Round, String
#include <AutoItConstants.au3> #include <MsgBoxConstants.au3> Local $dNumber1 = Number(1 + 2 + 10) ; Returns 13. Local $dNumber2 = Number("3.14") ; Returns 3.14. Local $dNumber3 = Number("24/7") ; Returns 24. Local $dNumber4 = Number("tmp3") ; Returns 0 as this is a string. Local $dNumber5 = Number("1,000,000") ; Returns 1 as it strips everything after (and including) the first comma. Local $dNumber6 = Number("24autoit") ; Returns 24 Local $dNumber7 = Number("1.2e3sa") ; Returns 1200 Local $dNumber8 = Number("0xcade") ; Returns 51934 Local $dNumber9 = Number(Ptr(5)) ; Returns 5 Local $dNumber10 = Number(Binary("abc")) ; Returns decimal value of 0x616263 = 6513249 Local $dNumber11 = Number(ObjCreate("Scripting.Dictionary")) ; Returns 0 Local $dNumber12 = Number(1 > 3 Or 5 <= 15) ; Returns 1 Local $dNumber13 = Number("-30") ; Returns 30 MsgBox($MB_SYSTEMMODAL, "", "The following values were converted to a numeric value:" & @CRLF & _ "$dNumber1 = " & $dNumber1 & @CRLF & _ "$dNumber2 = " & $dNumber2 & @CRLF & _ "$dNumber3 = " & $dNumber3 & @CRLF & _ "$dNumber4 = " & $dNumber4 & @CRLF & _ "$dNumber5 = " & $dNumber5 & @CRLF & _ "$dNumber6 = " & $dNumber6 & @CRLF & _ "$dNumber7 = " & $dNumber7 & @CRLF & _ "$dNumber8 = " & $dNumber8 & @CRLF & _ "$dNumber9 = " & $dNumber9 & @CRLF & _ "$dNumber10 = " & $dNumber10 & @CRLF & _ "$dNumber11 = " & $dNumber11 & @CRLF & _ "$dNumber12 = " & $dNumber12 & @CRLF & _ "$dNumber13 = " & $dNumber13 & @CRLF)