2016-12-03 5 views
0

Ich habe Probleme mit einem String-Wert '62 .5816993713379 ', der beim Versuch, in einen Gleitkommawert zu konvertieren, mir ein anderes Ergebnis gibt.Umwandlung eines Strings in Fließkomma

Bitte beachten Sie den Code unten:

<?php 

$str = '62.5816993713379'; 

echo floatval($str); 

Es gibt mir 62,581699371338 statt 62,5816993713379

Beispiel: http://codepad.org/WKeLwq7h

Kann jemand bitte helfen Sie mir, dieses Problem zu beheben?

Grüße

+2

wollen http://stackoverflow.com/questions/588004/is-floating-point-math-broken –

Antwort

0

Da Schwimmer-Punkt gibt es nicht die ganze Dezimalzahl darstellen kann und die Reichweite hat. Es gibt zwei Lösungen:

  • Halten Sie Ihren Wert als Zeichenfolge und BC Math Function verwenden, um die Berechnung durchzuführen.
  • Erhöhen Sie die ini_set('precision', 18); und überqueren Sie den Finger, so dass Sie Ihre Nummer, die sich außerhalb ihres Bereichs befindet, genau darstellen können.
0

diese Weise können Sie

$str = '62.5816993713379'; 
echo sprintf ("%.14f", floatval($str)); 

14f Anzahl der Lage, bis Sie Präzision

Verwandte Themen