Zahl in 10er Potenz
Andavos
- php
0 Bio0 Thomas Meinike0 Bio
Hallo,
also ich habe eine extrem große Zahl (600 stellen und mehr) und leider schreibt PHP diese dann aus. Allerdings würde ich es gerne hinbekommen, das PHP daraus eine 10er Potenz macht.
Also aus:
256 wir dann z.B. 2,56E+02
Kennt jemand den Befehl dafür?
MFG
Andavos
Sup!
Kennt jemand den Befehl dafür?
Gibt's denn da kein printf in PHP mit %e Format-Operator?
Gruesse,
Bio
Hallo,
Gibt's denn da kein printf in PHP mit %e Format-Operator?
Den gibt es schon, wobei der Parameter nur in der englischen Doku steht [unter sprintf()].
Allerdings ist gerade dieser Parameter in aelteren PHP-Versionen buggy (gibt 00 beim Exponent aus) und kann auch nur Werte bis ~1e+308 verarbeiten. Die 600 Stellen des OP fallen dann durch. Man kann das etwa so loesen (hier nur fuer positive Werte probiert):
<?php
function format_zahlstr($zahlstr,$k)
{
$hoch=strlen($zahlstr)-1;
$gueltigeziffern=15;
$kommastellen=$k;
return number_format(substr($zahlstr,0,1).".".substr($zahlstr,1,$gueltigeziffern-1),$kommastellen)."e+".$hoch;
}
$test="987654321012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";
printf("%e",$test); // INFTo -- ohne die Endziffer 9 klappt es noch
print "<br>";
print format_zahlstr($test,5); // 9.87654e+308
?>
MfG, Thomas
Sup!
Hahaha... *typisch* PHP ;-)
Gruesse,
Bio