Runde in PHP zeigt wissenschaftliche Notation statt vollzählig
-
20-08-2019 - |
Frage
Ich versuche, ein Echo einer Variablen zu tun enthält 1.400.000.
so wird geschrieben: echo round(1400000);
dies gibt 1,4E + 6 statt die volle Zahl.
Jemand eine Idee, wie man es vollständig angezeigt werden?
Lösung
Es scheint, dass rund um das Problem ist.
Habe ich es mit number_format()
und dies macht den Job gut.
Dank Aron und Paul für die Antworten.
Andere Tipps
Bezug zu Ihrer Frage, ich stieß auch auf diesen Kommentar auf der PHP-Website.
PHP-Switches von der Standard-Dezimal Notation exponentieller Notation für bestimmte „besondere“ schwebt. Du kannst sehen eine unvollständige Liste solcher „besonderen“ Werte mit diesem:
for( $tmp = 0, $i = 0; $i < 100; $i++ )
{
$tmp += 100000;
echo round($tmp),"\n";
}
Wenn Sie also zwei Schwimmern hinzufügen, am Ende mit ein „spezieller“ Wert, z.B. 1.2E + 6, dann setzen diesen Wert in einem unmodifizierten Update-Abfrage den Wert in ein speichern Dezimal-Spalte, sagen, Sie werden wahrscheinlich erhalten eine fehlgeschlagene Transaktion, da die Datenbank „1.2E + 6“, wie varchar sehen Daten, nicht dezimal. Ebenso werden Sie wahrscheinlich eine XSD-Validierung Fehlermeldung erhalten, wenn Sie setzen den Wert in xml.
Ich muss ehrlich sein: dies ist eine der die seltsamsten Dinge, die ich gesehen habe in jede Sprache in mehr als 20 Jahren Codierung, und es ist ein kolossalen Schmerzen Umgehen.
Es scheint, hat es nicht eine „echte“ gewesen noch beheben, aber aus den Kommentaren zu urteilen in der Fehlerbericht Paul Dixon referered früher , scheint seine Lösung zu arbeiten.
Möglicherweise im Zusammenhang mit diesem Bugreport , so kann man versuchen,
printf("%d", $myvar);