Ce face int.toString
toString() transformă un număr în text: 42.toString() este '42'. Ai nevoie de el când lipești numărul de alt text cu + sau când o funcție cere un String. În interpolare ('$n lei') este apelat automat.
toStringAsFixed(n) scrie numărul cu exact n zecimale, rotunjind: 3.14159.toStringAsFixed(2) este '3.14'. Pe un int adaugă zerourile: 5.toStringAsFixed(2) este '5.00'. n poate fi între 0 și 20.
Separatorul zecimal este mereu punctul. Pentru formatul românesc (12,50 lei) înlocuiește punctul cu replaceAll sau folosește pachetul intl.
Parametri
| Parametru | Descriere |
|---|---|
fractionDigits |
Numărul de zecimale (0–20). |
Ce returnează
Un String.
Exemple
Exemplul 1: Numere în text
void main() {
var bucati = 3;
var text = 'Ai cumpărat ' + bucati.toString() + ' caiete';
print(text);
print(5.toStringAsFixed(2));
print(2.675.toStringAsFixed(2));
print((10 / 3).toStringAsFixed(3));
print(1234.5.toStringAsFixed(0));
}
Rezultat
Ai cumpărat 3 caiete
5.00
2.67
3.333
1235
Exemplul 2: Bon de cumpărături cu prețuri în format românesc
Formatăm cu două zecimale și înlocuim punctul cu virgula.
String lei(num suma) => '${suma.toStringAsFixed(2).replaceAll('.', ',')} lei';
void main() {
var produse = {'pâine': 4.5, 'lapte': 7.25, 'ouă (10)': 12};
num total = 0;
produse.forEach((nume, pret) {
print('${nume.padRight(10)} ${lei(pret)}');
total += pret;
});
print('TOTAL ${lei(total)}');
}
Rezultat
pâine 4,50 lei
lapte 7,25 lei
ouă (10) 12,00 lei
TOTAL 23,75 lei
Greșeli frecvente
- Te aștepți ca
2.675.toStringAsFixed(2)să dea2.68. Dă2.67, pentru că2.675nu poate fi ținut exact în binar. Pentru bani, ține sumele în bani (întregi):1250în loc de12.50. - Folosești
toStringAsFixedși apoi faci calcule cu rezultatul. Rezultatul este text; calculează întâi, formatează doar la afișare.
Comenzi înrudite
int.toRadixString: toRadixString scrie numărul în altă bază (binar, hexazecimal); bitLength spune câți biți îi trebuie.double.toStringAsPrecision: Scrie numărul ca text cu un număr dat de cifre semnificative (nu de zecimale).int.parse: Transformă un text în număr întreg; parse aruncă FormatException la text greșit, tryParse returnează null.String.padLeft: Completează textul în stânga (padLeft) sau în dreapta (padRight) până ajunge la o lungime dată.