# 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 <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 it is a string that does not start with a digit
    Local $dNumber5 = Number("1,000,000") ; Returns 1 as it strips everything after (and including) the first comma
    Local $dNumber6 = Number("24autoit") ; Returns 24 as it stop processing string on character that is not an digit
    Local $dNumber7 = Number("1.2e3sa") ; Returns 1200
    Local $dNumber8 = Number("0xcade") ; Returns 51934 as this is decimal value of 0xcade = 51934
    Local $dNumber9 = Number(Binary("abc")) ; Returns 6513249 as this is decimal value of 0x616263 = 6513249
    Local $dNumber10 = Number(Ptr(5)) ; Returns 5
    Local $dNumber11 = Number(ObjCreate("Scripting.Dictionary")) ; Returns 0
    Local $dNumber12 = Number(1 > 3 Or 5 <= 15) ; Returns 1 as true is converted to 1 and false to 0
    Local $dNumber13 = Number("-30") ; Returns -30
    Local $dNumber14 = Number("00000123456790") ; Returns 123456790 as it strips leading zeros from the string
    Local $dNumber15 = Number("0000012a345b67c90") ; Returns 12 as it strips leading zeros from the string and stop processing string on character that is not an digit

    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 & _
            "$dNumber14 = " & $dNumber14 & @CRLF & _
            "$dNumber15 = " & $dNumber15 & @CRLF)