zahlen trennung

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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

      Comment


      • #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

        Comment


        • #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

          Comment


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

            Comment


            • #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.

              Comment


              • #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

                Comment


                • #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

                  Comment

                  Working...
                  X