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

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)