Convertit une chaîne en nombre.
Number ( expression [, flag = 0] )
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". |
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.
Binary, Ceiling, Floor, HWnd, Int, Ptr, Round, String
#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)