LoriotPro Extended Edition Programmation en language LUA

Table des matières

HelpLUA

Les nombres en LUA

Représentation interne

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 :

Utiliser les nombres

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

Fonctions mathématiques

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.

Conversion de chaîne en nombre

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

Coercition (Conversion automatique du type de variable)

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



LUTEUS www.loriotpro.com