Edmund Schöpf: Formatierung von Dezimalstellen

Ich erhalte als Resultat einer Rechenoperation leider eine Zahl mit vielen Dezimalstellen.
Ich möchte:

  1. nur zwei Dezimalstellen anzeigen
  2. anstatt dem "." (Dezimalpunkt) das "," (Komma)
    Kann mir bitte jemand helfen?

Grüße und besten Dank

Edmund Schöpf

  1. Ich erhalte als Resultat einer Rechenoperation leider eine Zahl mit vielen Dezimalstellen.
    Ich möchte:

    »»  1. nur zwei Dezimalstellen anzeigen

    Dazu hat (s)printf ein paar ganz nette Funktionen...

    $wort = sprintf("%.2f",$zahl);
    (wird dann auch gleich kaufmännisch gerundet)

    »»  2. anstatt dem "." (Dezimalpunkt) das "," (Komma)

    $zahl =~ s/./,/g;

    Ciao,
    Mirko

    1. $zahl =~ s/./,/g;

      Das "/g" (alles ersetzen) ist natürlich nicht nötig... nur Gewohnheit...

      Ciao,
      Mirko

  2. Eine Möglichkeit: Du kannst die Variable wie einen String behandeln und manipulieren. Weiterrechnen solltest Du mit dem Komma-Wert jedoch nicht. Aber Du kannst die Umwandlung des Komma jederzeit in entgegengesetzter Richtung durchführen.

    Die einzelnen Schritte:

    $zahl = 3578.079592873;

    Punkt in Komma umwandeln (gleichzeitig wird die Zahl zum String)

    $zahl =~ s/./,/;

    Komma-Position bestimmen (bei obiger $zahl wäre das 4)

    $kommaposition = index($zahl,",");

    Substring oberhalb zwei Zeichen nach Komma-Position extrahieren

    $zahl = substr($zahl,0,($kommaposition + 2));

    fertig, glaube ich.

    Ich find‚s auch blöd. Hoffentlich gibt es noch eine einfachere Methode.

    Marian.