pow în Dart

Ridică un număr la o putere; cu baza și exponentul întregi dă int, altfel double.

Sintaxă
import 'dart:math';

num pow(num x, num exponent)

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 ^ 10 așteptând o putere. În Dart ^ este SAU exclusiv pe biți: 2 ^ 10 dă 8.
  • Atribui direct int x = pow(3, 2);. Tipul static este num, 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.