1.1k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Aloha ey

Ich möchte einen Betrag (xx.x) nach der Ausgabe teilen und so zwei
Stücke haben.

Es ist EuroEuro.Cent (aber nur wenn Cent gleich rund), ansonsten
EuroEuro.Cent.Cent.

Wie kann ich das bewerkstelligen?

........
$betrag = $_GET['betrag'];

$euro= $betrag;
$cent = "00";

if(is_float($betrag)) {
$betrag = number_format($betrag, 2);
$values = explode(".", $betrag);
$euro= $values[0];
$cent= $values[1];

}

........
Das geht nicht - es wird immer ein Betrag von 00 angezeigt und nicht
der Betrag, welches sein muss.......

5 Antworten

0 Punkte
Beantwortet von
wenn ich es richtig verstanden habe möchtest Du das der Centwert immer zwei Ziffern hat.
Wenn es bei dir nicht geht könnte es daran liegen das number_format eine mathematische, explode aber eine Stringfunktion ist. Bin aber gerade zu Faul meinen Xampp anzuwerfen um es zu testen.
Ich würde es aber mal so probieren:

$betrag = 12.6; // soll aber 12.60 werden

$values = explode(".", $betrag);
$euro= $values[0]; // ergibt 12
$cent= $values[1]; // ergibt hier 6

if($cent <10) {$cent = $cent * 10;} //aus 6 wird 60
0 Punkte
Beantwortet von
Wunderbar - danke.
Nun - wird es korrekt dargestellt, d.h. z.B. folgend:

10.80

Was nun aber nicht geht, ist z.B. 300.00. Es zeigt nu 300.0 an (fehlt also
eine Null).

else $rappen = "00";


lösen - geht aber nicht.
Hast du da noch eine Idee?
0 Punkte
Beantwortet von
man beachte die IF Bedingung. Die war vorher auch bei 0 erfüllt so das ein Else erst garnicht ausgeführt wurde.

so gehts:

$betrag = 300.00; // soll aber 12.60 werden

$values = explode(".", $betrag);
$euro= $values[0]; // ergibt 12
$cent= $values[1]; // ergibt hier 6

if($cent <10 AND $cent >0) {$cent = $cent * 10;}
elseif(!$cent){ $cent = "00";}

echo $euro.".".$cent."<br>";
0 Punkte
Beantwortet von
Besten Dank wurzelpeter

Dies hatte ich auch "fast" bereits zusammen, jedoch hatte ich es
folgend:

if($cent <10 AND >0) {$cent = $cent * 10;}
elseif(!$cent){ $cent = "00";}


Du siehst, mir fehlte ein "$cent" nach dem AND. Ich bin davon
ausgegange, dass es eigentlich klar ist :-). Nun passt es aber uns es
funktioniert einwandfrei. Besten Dank :-)
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
oder aber:

if( $cent <10 ) { $cent = $cent . "0"; }
...