Archiv verlassen und diese Seite im Standarddesign anzeigen : [Funktion] Mit PHP runden, bzw. Stellen weglassen
Ich habe jetzt ein kleines Script geschrieben was den Zensurendurchschnitt ermittelt und jetzt kommt z.B. 1,734576766 raus
wie kann ich da z.B. sagen, dass nach dem Komma nur noch 2 Stellen angezeigt und eventuell die 3. für das Runden mit einbezogen wird. Vielleicht get es mit explode oder erreg keine Ahnung.
Original geschrieben von Normi
Vielleicht get es mit explode oder erreg keine Ahnung.
Geht bestimmt.
Aber zum Glück hat PHP für sowas eingebaute Funktionen:
http://php.net/round
(ich weiß das, weil ich genau das Problem auch mal hatte, und einfach im PHP-Handbuch gesucht habe)
Ja, also wenn ich damit Zahlen runden will, die ich vorher eingegeben habe funktioniert es prima, aber wenn die zurundende Kommazahl aus einer Variablen geholt werden soll, geht es nicht.
Hier der Code:
<?
$rundwert="1,653432";
$zeige=round($rundwert,2);
echo $zeige;
?>
Kommt immer nur 1 raus, obwohl ich doch 3 Stellen will und wenn ich statts $rundwert die Zahl 1,653432 eingebe funktionierts geht das mit Variablen etwa grundsätzlich nicht, oder wie geht es?
Die Zahlen in PHP werden nach dem englischen Format behandelt. Das heißt, dass wenn du hier 1,3453 schreibst musst du in PHP 1.3453 schreiben, weil statt eines Kommas ein Punkt verwendet wird.
Warum es trotzdem geht, wenn du die Zahl direkt hinschreibst weiß ich auch nicht :dontknow:
Original geschrieben von Normi
$rundwert="1,653432";
damit weist du $rundwert einen string zu, und keine zahl.
Es lag an dem Punkt, wenn ich
$rundwert="1.653432"; eingebe, dann rundet er auch richtig.
ABER: Für mein Notendurchschnittsprogramm brauche ich doch noch mal Hilfe:
Also der Durchschnitt wird errechnet und in die Variable $dgesammt gespeichert. Der Wert ist aber dann mit Komma angegeben und ich muss ja einen Punkt machen. Wie funktionert das mit ersetzen also dass er das Komma durch den Punkt ersetzt und die Variable mit dem Punkt statts Komma überschreibt, denn sonst rundet er ja wieder nicht.
Habs selber rausgefunden:
$dgesammt = ereg_replace(",",".",$dgesammt);
Original geschrieben von Normi
Es lag an dem Punkt, wenn ich
$rundwert="1.653432"; eingebe, dann rundet er auch richtig.
und immer noch weist du einer variable, die eigentlich einen zahlwert beinhalten soll, einen string zu ...
<?
$rundwert=1.633432;
$zeige=round($rundwert,4);
echo $zeige;
?>
Nun zufrieden @wahsaga ???
Hallo,
ich habe ein ähnliches Problen. Das runden einer erstellten Zahl funtioniert. Nur möchte ich einen Betrag ebenso mit zwei Nachkommastellen haben, wenn diese leer sind, also ".00".
Hat jemand eine Idee, wie ich das machen kann?
Wenn ich runden angebe, schneidet er sie mir immer ab.
Danke,
Olaf
Original geschrieben von Sledge
Nur möchte ich einen Betrag ebenso mit zwei Nachkommastellen haben, wenn diese leer sind, also ".00".
Hat jemand eine Idee, wie ich das machen kann?
ja, und zwar die idee, die hier auch schon mehrmals im forum steht: number_format().
DaGuertliz 03-12-2003, 16:32 if(($wert%1)==0){
$wert.=".00";
}
Habe keine Ahnung, ob das funzt ... war mir nur spontan eingefallen ;-)
Leider hast Du danach einen String und nicht mehr eine Zahl ...
|
|