double.toInt în Dart

toInt() transformă un număr în int tăind zecimalele; toDouble() transformă un int în double.

Sintaxă
int toInt()          // double, num
double toDouble()    // int, num

Ce face double.toInt

Dart nu transformă singur un double în int: trebuie să o ceri. toInt() taie zecimalele (spre zero), la fel ca truncate(): 9.99.toInt() este 9, (-9.99).toInt() este -9. Dacă vrei rotunjire, folosește round().

toDouble() face invers: 7.toDouble() este 7.0. Ai nevoie de el când o funcție cere explicit double și ai o variabilă int (literalele întregi sunt convertite automat, variabilele nu).

Ambele există și pe num: num.toInt() și num.toDouble() funcționează pe orice număr. toInt() pe NaN sau infinit aruncă UnsupportedError.

Ce returnează

toInt: un int. toDouble: un double.

Exemple

Exemplul 1: Conversii între int și double

void main() {
  print(9.99.toInt());
  print((-9.99).toInt());
  print(9.99.round());
  int bucati = 7;
  double total = bucati.toDouble();
  print(total);
  num n = 12.7;
  print(n.toInt());
}

Rezultat

9
-9
10
7.0
12

Exemplul 2: Procentul de promovați

Calculul dă un double; pentru afișarea unui procent întreg folosim toInt() sau round().

double procent(int parte, int total) => parte.toDouble() / total * 100;

void main() {
  var p = procent(23, 27);
  print(p);
  print('Promovați: ${p.toInt()}% (tăiat), ${p.round()}% (rotunjit)');
}

Rezultat

85.18518518518519
Promovați: 85% (tăiat), 85% (rotunjit)

Greșeli frecvente

  • Scrii int x = 9.5; sau int x = media;: nu compilează. Folosește media.toInt() sau media.round().
  • Folosești toInt() și te aștepți la rotunjire. toInt() doar taie zecimalele.

Comenzi înrudite

  • int.round: Metodele de rotunjire din num: pe un int returnează chiar numărul; pe un double dau cel mai apropiat întreg.
  • double: Tipul pentru numere cu zecimale (virgulă mobilă, 64 de biți): prețuri, medii, temperaturi.
  • int: Tipul pentru numere întregi (fără zecimale): vârste, cantități, note, indici.
  • num: Tipul comun pentru int și double: o variabilă num poate ține orice număr.