pi în Dart

Constantele matematice din dart:math: pi, e, sqrt2, ln10 (și ln2, log2e, log10e, sqrt1_2).

Sintaxă
import 'dart:math';

const double pi = 3.1415926535897932;
const double e = 2.718281828459045;
const double sqrt2 = 1.4142135623730951;
const double ln10 = 2.302585092994046;

Ce face pi

dart:math definește constantele matematice des folosite, ca const double: pi (π ≈ 3,14159), e (baza logaritmului natural ≈ 2,71828), sqrt2 (√2), ln10 (logaritmul natural al lui 10). Mai există ln2, log2e, log10e și sqrt1_2 (√½).

Fiind const, le poți folosi în alte constante: const tau = 2 * pi;. Până la Dart 2.0 se scriau cu majuscule (PI, E); acum numele sunt cu litere mici.

Atenție: dacă imporți dart:math fără prefix, numele e este ocupat. O variabilă locală e (de exemplu în catch (e)) ascunde constanta în acel bloc.

Exemple

Exemplul 1: Valorile constantelor

import 'dart:math';

void main() {
  print(pi);
  print(e);
  print(sqrt2);
  print(ln10);
  print(sqrt2 == sqrt(2));
  print(ln10 == log(10));
}

Rezultat

3.141592653589793
2.718281828459045
1.4142135623730951
2.302585092994046
true
true

Exemplul 2: Aria și circumferința unei pizza

import 'dart:math';

void main() {
  const diametru = 32.0;
  const raza = diametru / 2;
  const tau = 2 * pi;
  print('Pizza de $diametru cm');
  print('Arie: ${(pi * raza * raza).toStringAsFixed(1)} cm²');
  print('Circumferință: ${(tau * raza).toStringAsFixed(1)} cm');
}

Rezultat

Pizza de 32.0 cm
Arie: 804.2 cm²
Circumferință: 100.5 cm

Exemplul 3: Import cu prefix, ca să eviți conflictul cu e

Cu as math, constantele se scriu math.e, iar numele e rămâne liber pentru variabile.

import 'dart:math' as math;

void main() {
  const e = 'Elena';
  print('Bună, $e!');
  print('Constanta lui Euler: ${math.e.toStringAsFixed(5)}');
  print('pi cu 2 zecimale: ${math.pi.toStringAsFixed(2)}');
}

Rezultat

Bună, Elena!
Constanta lui Euler: 2.71828
pi cu 2 zecimale: 3.14

Greșeli frecvente

  • Scrii PI sau Math.PI ca în alte limbaje. În Dart 3 numele este pi, cu litere mici, și vine din dart:math.
  • Folosești 3.14 scris de mână. Pierzi precizie; pi are toate zecimalele unui double.

Comenzi înrudite

  • sin: Funcțiile trigonometrice sin, cos și tan; unghiul se dă în radiani, nu în grade.
  • exp: exp(x) calculează e la puterea x, iar log(x) este logaritmul natural (în baza e), inversa lui exp.
  • sqrt: Calculează rădăcina pătrată a unui număr și returnează mereu un double; pentru numere negative dă NaN.