Function Reference


Number

Returns the numeric representation of an expression.

Number ( expression [, flag = 0] )

Parameters

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".

Return Value

Returns a number.

Remarks

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-hexadecimal (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.If not is stored in a floaring-point.

Related

Binary, Ceiling, Floor, HWnd, Int, Ptr, Round, String

Example

#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)