Wie man mit seltsamer Rundung von Floats in PHP umgeht

8

Wie wir alle wissen, ist die Fließkomma-Arithmetik nicht immer vollständig genau, aber wie gehen Sie mit ihren Inkonsistenzen um?

Als Beispiel in PHP 5.2.9: (dies ist in 5.3 nicht der Fall)

%Vor%

Wie würdest du das umgehen?

    
nickf 12.02.2010, 00:31
quelle

2 Antworten

8

Willkommen bei IEEE754, genießen Sie Ihren Aufenthalt .

Verwenden Sie bc oder gmp statt.

    
Ignacio Vazquez-Abrams 12.02.2010, 00:32
quelle
4
  

Wie gehst du damit um?   Inkonsistenzen?

  • Für Dinge, bei denen exakte Ergebnisse auf der Grundlage der Dezimaldarstellung wichtig sind (zB Geld), nicht IEEE754-Floats verwenden, verwenden Sie "bignum" -Bibliotheken wie BCMath
  • Für Dinge, bei denen Ihre Berechnungen relativ relativ präzise sein müssen (wie bei den meisten wissenschaftlichen Berechnungen), verwenden Sie numerisch stabile Algorithmen, damit die Inkonsistenzen in den niedrigstwertigen Bits bleiben (wo sie keine Rolle spielen).
Michael Borgwardt 12.02.2010 00:44
quelle

Tags und Links