Functions > VarConv >


Number

Convertit une chaîne en nombre.

Number ( expression [, flag = 0] )

Paramètres

expression Une expression à convertir en nombre.
flag [optional] Définit le comportement.
Peut être l'un des suivants:
    $NUMBER_AUTO (0) = (par défaut) le résultat est retaillé automatiquement en 'integer'. Voir Remarque.
    $NUMBER_32BIT (1) = le résultat est un 'integer' 32bit.
    $NUMBER_64BIT (2) = le résultat est un 'integer' 64bit.
    $NUMBER_DOUBLE (3) = le résultat est un 'double'.

Les constantes sont définies dans "AutoItConstants.au3".

Valeur de retour

Retourne un nombre.

Remarques

Note: Un nombre est considéré comme une valeur qui est soit un nombre entier, une valeur à virgule flottante, une valeur en notation scientifique ou hexadécimale.

Si la chaîne contient un nombre, le résultat sera un nombre.
Si la chaîne contient une expression (AutoIt ou type de variable) avec un nombre au début de l'expression, alors cette valeur sera retournée sous forme de nombre, toutes les autres valeurs étant ignorées.
Si la chaîne commence par un nombre mais continue avec des caractères non numériques supplémentaires, seule la partie nombre est retournée sous la forme d'un nombre.
Si le paramètre expression est une expression arithmétique, l'expression sera évaluée en premier avant de retourner le résultat sous forme de nombre.
Si la notation est hexadécimale, mais les valeurs passées 0x ne sont pas hexadécimale (0-9, A-F), alors 0 est retourné.
Si le signe plus/moins est utilisé par ex. +30 ou -30, alors le retour sera des nombres positifs ou négatifs.
Dans tous les autres cas, 0 est retourné.

Dans les cas ci-dessus, la fonction retourne un entier si la mantisse du résultat est zéro ou si le flag est $NUMBER_32BIT ou $NUMBER_64BIT. Ces flags tronqueront un résultat à virgule flottante.

Par défaut, un résultat entier est stocké en 32 bits si possible. Sinon, il est stocké en 64 bits.

En relation

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

Exemple

#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>

Local $bNumber1 = Number(1 + 2 + 10) ; Retourne 13.
Local $bNumber2 = Number("3.14") ; Retourne 3.14.
Local $bNumber3 = Number("24/7") ; Retourne 24.
Local $bNumber4 = Number("tmp3") ; Retourne 0 car c'est une chaîne.
Local $bNumber5 = Number("1,000,000") ; Retourne 1 car il supprime tout ce qui suit après la première virgule (le séparateur décimal est le point!).
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, "", "Les valeurs suivantes ont été converties en valeurs numériques:" & @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)