double.toStringAsPrecision în Dart

Scrie numărul ca text cu un număr dat de cifre semnificative (nu de zecimale).

Sintaxă
String toStringAsPrecision(int precision)

Ce face double.toStringAsPrecision

toStringAsPrecision(n) păstrează primele n cifre semnificative, rotunjind: 3.14159.toStringAsPrecision(3) este '3.14', iar 1234.5.toStringAsPrecision(2) devine '1.2e+3' (notație științifică, pentru că 2 cifre nu ajung pentru partea întreagă).

Diferența față de toStringAsFixed: toStringAsFixed(2) fixează numărul de zecimale, iar toStringAsPrecision(2) fixează numărul total de cifre importante. Este potrivit pentru măsurători științifice, unde precizia contează mai mult decât poziția virgulei. n este între 1 și 21.

Parametri

Parametru Descriere
precision Numărul de cifre semnificative (1–21).

Ce returnează

Un String.

Exemple

Exemplul 1: Precizie față de zecimale fixe

La numere foarte mici diferența se vede clar: cu 2 zecimale fixe din 0.000123456 rămâne 0.00, dar cu 2 cifre semnificative rămâne 0.00012.

void main() {
  var pi = 3.14159265;
  print(pi.toStringAsPrecision(3));
  print(pi.toStringAsFixed(3));
  print(1234.5.toStringAsPrecision(2));
  print(1234.5.toStringAsPrecision(6));
  print(0.000123456.toStringAsPrecision(2));
  print(0.000123456.toStringAsFixed(2));
}

Rezultat

3.14
3.142
1.2e+3
1234.50
0.00012
0.00

Exemplul 2: Măsurători de laborator

void main() {
  var masuratori = {'lungime (m)': 12.34567, 'masă (kg)': 0.0045678, 'distanța (km)': 384400.0};
  masuratori.forEach((ce, valoare) {
    print('$ce: ${valoare.toStringAsPrecision(3)}');
  });
}

Rezultat

lungime (m): 12.3
masă (kg): 0.00457
distanța (km): 3.84e+5

Greșeli frecvente

  • Folosești toStringAsPrecision pentru prețuri: poate da notație științifică (1.2e+3). Pentru bani folosește toStringAsFixed(2).

Comenzi înrudite

  • int.toString: toString() transformă numărul în text; toStringAsFixed(n) îl scrie cu exact n zecimale.
  • double: Tipul pentru numere cu zecimale (virgulă mobilă, 64 de biți): prețuri, medii, temperaturi.