Zahl formattieren

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

  • Zahl formattieren

    Moin, ich hab ein kleines Problem bei der Formattierung einer Zahl.
    Ausgangssituation: Ich hab eine einfache Division unterschiedlicher Zahlen d.h. das Ergebnis kann sowohl eine ganze Zahl als auch eine Kommazahl sein.
    Ich möchte das Ergebnis jetzt so formattieren das die Zahl immer mit 5 Ziffern ausgegeben wird.
    Beispiele:
    Die Zahl 5,9 soll als 5,9000 ausgegeben werden
    Die Zahl 50,9 soll als 50,900 ausgegeben werden
    Die Zahl 5 soll als 5,0000 ausgegeben werden
    Die Zahl 5,1234567 soll als 5,1234 ausgegeben werden
    Die Zahl 500,9 soll als 500,90 ausgegeben werden

    Die Zahl soll also immer aus 5 Stellen inkl. Trennzeichen bestehen. Ob Punkt oder Komma als Trennzeichen ist egal, tausender Punkte sind nicht nötig.
    Ganze Zahlen sollen mit Nullen nach dem Komma aufgefüllt werden.

    Ich habe selbst schon ein paar Variationen mit sprintf() und number_format() versucht, ich hab aber leider nie das gewünschte Ergebnis hinbekommen.

    Danke schonmal im vorraus.

  • #2
    PHP-Code:
    $values = array(5.950.955.1234567500.9);
    foreach(
    $values as $value) {
      echo 
    substr(sprintf('%0.5f'$value), 06)."<br>\n";

    Wow, das war jetzt aber eine Herausforderung

    (Ggf. nötige Anpassung für Zahlen, die mehr Ziffern haben, machst du bitte selber.)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke, deine Lösung funktioniert 1A und macht genau das was ich brauche.
      Allerdings hat sich daraus nun ein weiteres Problem ergeben.

      Ich speichere die Daten in einer mysql Datenbank und gebe sie dann wieder in einer Tabelle aus. Das ist soweit alles kein Problem.
      Nun hab ich in der Datenbank das Feld welches die Zahlen enthällt als Varchar definiert weil die Zahl sonst nicht in dem gewünschten 5 stelligen Format gespeichert wird.
      Ich möchte die Tabelle bei der Ausgabe aber nach genau dieser Zahl absteigend sortieren und genau da taucht das Problem auf.
      Da die Zahlen jetzt alle als Varchar in der Datenbank stehen und nicht als float o.ä. werden sie nicht mehr richtig sortiert.

      Ich hab versucht in der Datenbankabfrage mit CAST($zahl AS DECIMAL) oder CONVERT($zahl,DECIMAL) den String umzuwandeln, das lieferte aber kein Ergebnis


      EDIT: Hab selbst eine Lösung gefunden, danke.
      Zuletzt geändert von Domestos; 16.09.2012, 15:56.

      Kommentar

      Lädt...
      X