![]() |
Programmation en language LUA |
Les nombres en LUA |
Les languages de programmation supportent en général plusieurs types de nombres : Nombre entier, nombre entier précision illimitée, virgule flottante de précision simple, virgule flottante de double précision, nombres complexes.
Dans un intérêt de simplicité LUA supporte un seul type de nombre, le nombres à virgule flottante. Par défaut ce sont des nombres à virgule flottante de double précision, mais Lua peut facilement être recompilé pour soutenir des nombres de virgule flottante de précision simple si vous le souhaitez.
Quelques points au sujet (IEEE 754) de double virgule flottante 64-bit CONTRE les ints de 32 bits :
Nous pouvons utiliser LUA en ligne de commande interactive comme calculatrice et executer des expressions.
par exemple:
Copyright de Lua 5.0 (c) 1994-2003 Tecgraf, PUC-Rio
> = 1
1
> = 1 + 2
3
> =
3.1415927
3.1415927
>= 5/6
0.83333333333333
Nous pouvons écrire des nombres et évaluer des calculs simples. Lua peut également comprendre des types d'exposant pour exprimer des nombres sous la forme la < valeur > * 10 ^ < exposant >
> = 1.2345e6
1234500
> = 543.21E8
54321000000
> = 2.56e-4
0.000256
Nous pouvons affecter des nombres aux variables pour faire des opérations arithmétiques :
> largeur = 7.5
> taille = 12.7
> = largeur *
taille
95.25
> profondeur
= 2.8
> secteur = largeur * taille
> volume = secteur * profondeur
> print(area,
volume)
95.25 266.7
Lua est équipé d'une bibliothèque de maths. Les fonctions fournies sont comme suit :
math.abs math.acos math.asin math.abronzage math.atan2 math.ceil math.cos math.deg math.exp math.floor math.log math.log10 math.max math.min math.mod math.pow math.rad math.sin math.sqrt math.tan math.frexp math.ldexp math.random math.randomseed
Nous essayerons quelques unes des fonctions et des variables comme exemple.
> = math.sqrt(101)
10.049875621121
> = math.pi
3.1415926535898
> = math.sin(math.pi/3)
0.86602540378444
Lisez Fonctions Mathématiques pour plus de détails.
Vous pouvez convertir des chaînes de caractères en nombres en
utilisant la fonction tonumber()
. Ceci prend un argument chaînes
de caractères et renvoie un nombre.
> = tonumber("123") + 25
148
>x = tonumber("123.456e5")
>print(x)
12345600
Lua convertira automatiquement des types chaînes de caractères et de nombre en format correct afin d'exécuter des calculs.
Par exemple, si vous essayez d'appliquer une opération arithmétique à une chaînes de caractères, Lua essayera de convertir cette chaînes de caractères en nombre d'abord, autrement l'opération ne fonctionnera pas. Si la chaînes de caractères ne peut pas être convertie en nombre une erreur est retournée. Cette conversion automatique des types s'appelle la coercition.
> = 100 + "7"
107
> = "1000" + 234
1234
>
= "hello" + 234
stdin:1
: tentative d'exécuter l'arithmétique sur une chaînes de caractères
traceback de la pile
:
stdin:1 : dans la "chunk" principal
[ C ] : ?
> = 234 + "1000"
1234
Vous pouvez constate que où une chaînes de caractères peut être convertie en nombre, le calcul réussit.
Par contre, dans l'exemple ci-dessus la chaînes de caractères "hello"
ne
peut pas être convertie en nombre et ainsi une erreur
se produit. Dans des langues de typage statique(par
exemplele C) ceci causerait une erreur car vous ne pouvez pas assigner
une valeur à une variable d'un type incompatible. Ceci fonctionne dans Lua
parce qu'il est typé dynamiquement. Nous pouvons employer la
fonction de Lua type()
pour obtenir une description du type d'un
objet particulier.
> x = "123" -- une chaînes de caractères (string)
>
print(x,
type(x)) -- affiche la valeur de x et son type
123 string
>
x = x + 7 -- ajoutez
un nombre à la une chaînes de caractères et force la
coercition
>
print(x, type(x)) -- affiche la valeur et
le type 130 nombre
130 nombre
![]() |
|