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;sauint x = media;: nu compilează. Foloseștemedia.toInt()saumedia.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.