zahlen trennung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • zahlen trennung

    hallo,

    ich hab da ein script geschrieben das die größe einer datei in bytes ausgibt. z.b. 260000 wären ca. 250kb. da ich aber das in kb und nicht bytes ausgeben will, meine frage:
    wie kann ich nach 3zahlen einen punkt setzen?

    die zahlen kommen per file() aus einer textdatei.

    gruß kevin

  • #2
    http://de2.php.net/manual/de/function.number-format.php hilft.
    Kissolino.com

    Kommentar


    • #3
      hi,

      ja, das hat mir geholfen, aber es gibt noch ein problem:

      das erste beispiel trennt jede 3. stelle mit einem ",". da ich aber kb sethen hab passt das nicht wenn auf einmal 12.124.567 steht. das sind zwar 12124567 bytes, 12, 124mb, aber keine kb.
      wie kann man dann die länge eines zeichensatzes herausfinden?

      gruß kevin

      Kommentar


      • #4
        wie war das noch gleich: 1 kb = 1024 byte ... da musste man teilen ... dann hilft danach noch round()/ceil()/floor(), um eine glatte zahl zu erhalten und danach halt number_format() ... oder so.
        Kissolino.com

        Kommentar


        • #5
          wenn ich also 250000 bytes hab, einfach durch 1024 teilen, dann hab ich ca 250kb, gell. wenn ich aber jetzt 10250000 habe, teile ich ja wieder durch 1024, weil im script ncihts andres steht, dann bekomme ich aber 10009,765625 raus. das wären ja jetzt 10mb. das sieht aber scheiße aus wenn 10009,765625kb dransteht. wie kann ich das jetzt auf mb runden? das script weiß ja nicht wann es auf mb runden soll.

          gruß kevin

          Kommentar


          • #6
            ein vergleich ">" v "<" in verbindung mit if() ... ?
            Kissolino.com

            Kommentar


            • #7
              was findest du von dem:

              PHP-Code:
              $number 260023000;
              $english_format_number number_format($number);

              if (
              strlen($number)==6) {
                  echo 
              "$english_format_number kb";
              }

              if (
              strlen($number)==9) {
                  echo 
              "$english_format_number mb";

              es kommt dann entweder 250,000,00mb oder 250,00kb raus.

              Kommentar


              • #8
                Original geschrieben von kevink2005
                was findest du von dem:
                wo?

                wenn du wissen wolltest, _wie_ ich das finde => doof.

                ist das so schwer, wenn die zahl grösser ist als *** dann must du teilen ... ist sie immer noch grösser ... hoppla, nochmal teilen ... ist sie immer noch grösser ... <= die antwort kannst du dir selber geben

                btw: du hast eine zahl (int/float), keinen string ... wozu verwendest du string-funktionen (strlen)?
                Kissolino.com

                Kommentar


                • #9
                  ja klar kapier ich das aber das script oben erfüllt doch seinen sinn!
                  es sollte doch nur mb und kb ändern. die zahlentrennung bkeibt gleich.
                  z.b 12250000 = 12,250,00 mb und wenn kleiner: 999999 = 999,999 KB.

                  Gruß kevin

                  Kommentar

                  Lädt...
                  X