Precizia numerelor complexe
Versiunea din 29 martie 2020 13:02, autor: Yo3iti (discuție | contribuții)
Partea reală și partea imaginară a unui număr complex sunt reprezentate ca variabile în virgulă mobilă de tip double. Din acest motiv își pot pierde precizia ca urmare a operațiunilor matematice. Asta înseamnă că strictețea comparațiilor de egalitate nu este garantată și poate da erori. De exemplu, aplicarea unei funcții exponențiale asupra rezultatului unui logaritm va da diferențe:
Complex value = new Complex(Double.MinValue/2, Double.MinValue/2);
Complex value2 = Complex.Exp(Complex.Log(value));
Console.WriteLine("{0} \n{1} \nEgal: {2}", value, value2,
value == value2);
// Exemplul va afișa în consolă:
// (-8.98846567431158E+307, -8.98846567431158E+307)
// (-8.98846567431161E+307, -8.98846567431161E+307)
// Egal: False