Ce face pow
pow(x, exponent) calculează x la puterea exponent. Dart nu are operatorul **, așa că pentru puteri folosești această funcție din dart:math.
Tipul declarat al rezultatului este num. La rulare, dacă ambele argumente sunt int și exponentul nu este negativ, rezultatul este int; altfel este double. Pentru că tipul static este num, scrie pow(2, 10).toInt() când ai nevoie de un int în variabilă.
Exponentul poate fi și fracționar: pow(8, 1/3) este rădăcina cubică a lui 8. Cu int, puterile foarte mari depășesc 64 de biți și se „rotesc”; pentru numere uriașe folosește BigInt.pow.
Parametri
| Parametru | Descriere |
|---|---|
x |
Baza. |
exponent |
Puterea; poate fi negativă sau cu zecimale. |
Ce returnează
Rezultatul ca num (la rulare int pentru baze și exponenți întregi nenegativi, altfel double).
Exemple
Exemplul 1: Puteri întregi și fracționare
import 'dart:math';
void main() {
print(pow(2, 10));
print(pow(2, 10).runtimeType);
print(pow(2, -1));
print(pow(9, 0.5));
print(pow(8, 1 / 3));
final int kilo = pow(2, 10).toInt();
print('1 KB = $kilo octeți');
}
Rezultat
1024
int
0.5
3.0
2.0
1 KB = 1024 octeți
Exemplul 2: Dobândă compusă la un depozit
Suma finală este suma × (1 + dobândă)ani.
import 'dart:math';
void main() {
const suma = 5000.0;
const dobanda = 0.06;
for (final ani in [1, 3, 5]) {
final total = suma * pow(1 + dobanda, ani);
print('După $ani ani: ${total.toStringAsFixed(2)} lei');
}
}
Rezultat
După 1 ani: 5300.00 lei
După 3 ani: 5955.08 lei
După 5 ani: 6691.13 lei
Greșeli frecvente
- Scrii
2 ^ 10așteptând o putere. În Dart^este SAU exclusiv pe biți:2 ^ 10dă8. - Atribui direct
int x = pow(3, 2);. Tipul static estenum, deci analizorul dă eroare. Folosește.toInt().
Comenzi înrudite
sqrt: Calculează rădăcina pătrată a unui număr și returnează mereu un double; pentru numere negative dă NaN.exp: exp(x) calculează e la puterea x, iar log(x) este logaritmul natural (în baza e), inversa lui exp.max: max returnează cel mai mare dintre două numere, iar min pe cel mai mic; păstrează tipul argumentelor.