Numerele sunt orice numar care nu e adaugat intre ghilimele (daca e scris intre ghilimele, e considerat String (sir)).
Numerele pot fi de mai multe feluri:
- Pozitive ( 8, 11, 12.5 )
- Negative ( -8, -11, -12.5 )
- Intregi ( -40, -2, 4, 78 ) - Denumite "integer"
- Cu virgula, sau fractionare ( -4.5, 7.8 ) - Denumite "float". In programare se foloseste punctul (.) intre partea intreaga si zecimale.
- Hexazecimale ( 0x7d8 reprezinta numarul 2008 )
- Exponentiale - Folosite pt. valori numerice mari (7.8e+8 = 780 000 000, adica 7.8x108).
• Ca si celelalte elemente de baza in ActionScript (siruri, Array), si numerele sunt considerate
obiecte, deoarece au metode proprii pentru lucru cu ele.
O variabila care stocheaza
numere se poate defini cu oricare din urmatoarele forme:
var nume_var:Tipnr = nr;
var nume_var:Tipnr = new Tipnr(nr);
var nume_var:Tipnr = Tipnr(nr);
-
nr este numarul adaugat in variabila "nume_var".
-
Tipnr reprezinta clasa din ActionScript pentru tipul de numere care sunt stocate in variabila, poate fi de 3 feluri:
- Number - pentru orice tip de numere, intregi, cu zecimale, hexazecimale sau exponentiale.
- int - pt. numere intregi (fara zecimale, pozitive sau negative).
- uint - pt. numere intregi pozitive (fara zecimale, mai mari decat 0).
-
De obicei se foloseste prima varianta.
• Daca variabilei de tip "Number" nu i-se atribuie o valoare (un numar), ci este doar simplu declarata (
var nume_var:Number;), valoarea va fi cea "defaul" folosita in AS3:
NaN (
Not a Number). Dar i-se poate atribui dupa ce a fost declarata.
Pentru a verifica daca o variabila are valoarea NaN se foloseste metoda "
isNaN(nume_var)" (aceasta returneazaa
true daca e NaN, sau
false).
Exemplu:
var nr:Number;
trace(nr); // NaN
trace(isNaN(nr)); // true
nr = 78;
trace(nr); // 78
Cum pt. tipul Number valoarea default este NaN , pentru tipurile int si uint valoarea default este 0.
- "var nr:Number = .nr" si "var nr:Number = 0.nr" reprezinta acelasi numar.
- Pentru a defini o culoarea in ActionScript 3 se foloseste expresia 0xFFRRGGBB [F - Alpha (transparenta), R - Red (rosu), G - Green (verde), B - Blue (albastru)], aceasta e un "32-bit integer" si poate fi stocat in tipul "uint".
Ex. var culoare:uint = 0xafe8edfe;
1. Metode si Constante obiect Number
Obiectul Number nu are proprietati specifice, are cateva metode (functii) si constante. Operatiile cu numere se fac cu operatorii aritmetici si relationali (vedeti lectia Constante si Operatori) si cu obiectul Math (e prezentat mai jos).
- Metode obiect Number
- toExponential(ze) - Returneaza un sir cu numarul in notatie exponentiala. "ze" indica numarul de zecimale afisate in notatia exponentiala returnata
- var nr:Number = 123456789;
trace(nr.toExponential(2)); // 1.23e+8
- toFixed(ze) - Returneaza un sir cu numarul fixat la cate zecimale indica "ze".
- var nr:Number = 12.3456789;
trace(nr.toFixed(3)); // 12.346
- toPrecision(ze) - Returneaza un sir cu numarul in notatia exponentiala sau normala. "ze" reprezinta numarul total de intregi si zecimale.
- var nr1:Number = 12.3456789;
trace(nr1.toPrecision(4)); // 12.35
var nr2:Number = 123400000;
trace(nr2.toPrecision(4)); // 1.234e+8
- toString() - Transforma numarul in sir.
- var nr:int = 7;
var sir:String = '8';
trace(nr.toString()+ sir); // 78 (sau String(nr)+ sir )
- Number('sir') - Transforma "sir" in Numar.
- var nr:int = 7;
var sir:String = '8';
trace(nr+ Number(sir)); // 15
- Constante obiect Number
- MAX_VALUE - Numarul cel mai mare care poate fi folosit.
- trace(int.MAX_VALUE); // 2147483647
trace(uint.MAX_VALUE); // 4294967295
trace(Number.MAX_VALUE); // 1.79769313486231e+308
- MIN_VALUE - Numarul cel mai mic care poate fi folosit.
- trace(int.MIN_VALUE); // -2147483648
trace(uint.MIN_VALUE); // 0
trace(Number.MIN_VALUE); // 4.9406564584124654e-324
- NEGATIVE_INFINITY - Reprezinta Infinitul Negativ si cu ea se pot verifica valorile "-Infinity" (rezultate de exemplu in urma impartirii la 0).
- var nr:Number = -7/0;
trace(); // -Infinity
trace(nr == Number.NEGATIVE_INFINITY); // true
- POSITIVE_INFINITY - Reprezinta Infinitul Pozitiv si cu ea se pot verifica valorile "Infinity" (rezultate de exemplu in urma impartirii la 0).
- var nr:Number = 8/0;
trace(); // Infinity
trace(nr == Number.POSITIVE_INFINITY); // true
2. Obiectul Math
Obiectul Math (sau clasa Math) contine metode si constante prin care se pot efectua operatii matematice mai avansate, cum ar fi: ridicarea la putere, obtinerea unui numar aleator, logaritmi, sau trigonometrice (cu sinus, cosinus, etc.).
• Sintaxa generala pentru folosirea metodelor Math este:
Math.metoda(parametru)
Exemple:
var nr:Number = Math.pow(3, 4); // Ridica 3 la puterea 4
trace(nr); // 81
var nr2:Number = Math.random();
trace(nr2); // 0.32177373580634594
- Metode obiect Math pt. operatii aritmetice
- pow(a, b) - Returneaza valoarea lui 'a' ridicat la puterea 'b'.
- exp(nr) - Returneaza 'e' la puterea 'nr' (e = 2.718281828 [valoarea bazei logaritmului natural]).
- floor(nr) - Returneaza valoarea rotunjita a lui 'nr' la anteriorul (mai mic) intreg.
- ceil(nr) - Valoarea rotunjita a lui 'nr' la urmatorul (mai mare) intreg.
- round(nr) - Valoarea rotunjita a lui numar la intregul cel mai apropiat.
- max(a, b, c, ...) - Cel mai mare numar dintre cele date la parametri.
- min(a, b, c, ...) - Cel mai mic numar dintre cele date la parametri.
- sqrt(nr) - Radical din 'nr'.
- abs(nr) - Valoarea absoluta (cu +) a lui 'nr'.
- log(nr) - Returneaza logaritmul natural al lui 'nr'.
- random() - Un numar aleator intre 0 si 1 (poate fi 0, dar nu si 1).
- Metode obiect Math pt. operatii trigonometrice
- sin(rad) - Sinusul unghiului specificat la 'ran', in radiani.
- cos(rad) - Cosinusul unghiului specificat la 'ran', in radiani.
- tan(rad) - Tangenta unghiului specificat la 'ran', in radiani.
- asin(rad) - Returneaza arcsinus-ul, unghiul in radiani, a numarului 'ran' (in radiani).
- acos(rad) - Returneaza arccosinus-ul, unghiul in radiani, a numarului 'ran' (in radiani).
- atan(rad) - Returneaza arctangenta, unghiul in radiani, a numarului 'ran' (in radiani).
- atan2(y, x) - Returneaza unghiul in radiani, trasat din origine la punctul de intersectie y/x.
- Pentru a afla valoarea in radiani, cand se cunosc gradele, se foloseste urmatoarea formula:
val_radiani = val_grade * Math.PI/180;
Exemplu:
var grade:Number = 45;
var radiani:Number = grade * Math.PI/180;
trace(radiani); // 0.7853981633974483
- Pentru a afla gradele, cand se cunosc radianii, se foloseste urmatoarea formula:
val_grade = val_radiani * 180/Math.PI;
Exemplu:
var radiani:Number = 0.7854;
var grade:Number = radiani * 180/Math.PI;
trace(grade); // 45
• Constantele sunt un numar fix. Sintaxa generala pentru folosirea constantelor
Math este:
Math.CONSTANTA
Exemple:
trace(Math.PI); // 3.141592653589793
trace(Math.E); // 2.71828182845905
- Constante Math
- E - Valoarea bazei logaritmului natural ( 2.71828182845905 ).
- LN10 - Logaritm natural din 10 ( 2.302585092994046 ).
- LN2 - Logaritm natural din 2 ( 0.6931471805599453 ).
- LOG10E - Logaritm in baza 10 din E ( 0.4342944819032518 ).
- LOG2E - Logaritm in baza 2 din E ( 1.442695040888963387 ).
- PI - Constanta matematica PI, pentru cerc ( 3.141592653589793 ).
- SQRT1_2 - Radical din 1/2 [0.5] ( 0.7071067811865476 ).
- SQRT2 - Radical din 2 ( 1.4142135623730951 ).