﻿ Function Number

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

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

```