Ce face double.parse
double.parse('9.75') dă numărul 9.75. Acceptă și întregi ('7' → 7.0), notația științifică ('1.5e3'), precum și textele 'NaN', 'Infinity' și '-Infinity'. Spațiile de la margini sunt ignorate.
Separatorul zecimal trebuie să fie punctul. Textul '9,75', scris românește, nu este valid: parse aruncă FormatException, iar tryParse returnează null. Înlocuiește virgula cu punct înainte de conversie.
Parametri
| Parametru | Descriere |
|---|---|
source |
Textul de transformat. |
Ce returnează
parse: un double. tryParse: un double?.
Exemple
Exemplul 1: Conversii reușite și eșuate
void main() {
print(double.parse('9.75'));
print(double.parse(' 7 '));
print(double.parse('1.5e3'));
print(double.parse('-Infinity'));
print(double.tryParse('9,75'));
print(double.tryParse('9,75'.replaceAll(',', '.')));
try {
double.parse('abc');
} on FormatException catch (e) {
print(e.message);
}
}
Rezultat
9.75
7.0
1500.0
-Infinity
null
9.75
Invalid double
Exemplul 2: Media notelor citite de la tastatură
import 'dart:io';
void main() {
var linie = stdin.readLineSync() ?? '';
var note = <double>[];
for (var bucata in linie.split(' ')) {
var nota = double.tryParse(bucata.replaceAll(',', '.'));
if (nota == null) {
print('Ignor „$bucata”');
} else {
note.add(nota);
}
}
var media = note.reduce((a, b) => a + b) / note.length;
print('Note: $note');
print('Media: ${media.toStringAsFixed(2)}');
}
Ce scrie utilizatorul (intrare)
9,5 8 10 nota 7.5
Rezultat
Ignor „nota”
Note: [9.5, 8.0, 10.0, 7.5]
Media: 8.75
Greșeli frecvente
- Citești
'12,50'de la un utilizator român și foloseștidouble.parse: aruncă eroare. Înlocuiește întâi virgula cu punct. - Folosești
double.parsecând textul poate fi orice: preferătryParseși trateazănull.
Comenzi înrudite
int.parse: Transformă un text în număr întreg; parse aruncă FormatException la text greșit, tryParse returnează null.num.parse: Transformă un text în int sau double, după cum arată textul; tryParse returnează null la text greșit.double: Tipul pentru numere cu zecimale (virgulă mobilă, 64 de biți): prețuri, medii, temperaturi.FormatException: Excepția aruncată când un text nu are formatul așteptat (int.parse(‘abc’), JSON greșit, dată invalidă).