Andavos: Zahl in 10er Potenz

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

--
http://www.php-einfach.de PHP lernen leicht gemacht
  1. Sup!

    Kennt jemand den Befehl dafür?

    Gibt's denn da kein printf in PHP mit %e Format-Operator?

    Gruesse,

    Bio

    --
    And the beast shall come forth surrounded by a roiling cloud of vengeance. The house of the unbelievers shall be razed and they shall be scorched to the earth. Their tags shall blink until the end of days.
    1. 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

      1. Sup!

        Hahaha... *typisch* PHP ;-)

        Gruesse,

        Bio

        --
        And the beast shall come forth surrounded by a roiling cloud of vengeance. The house of the unbelievers shall be razed and they shall be scorched to the earth. Their tags shall blink until the end of days.