Addieren zweier ungerader Zahlen

webhoster

Mitglied
Gute Abend euch allen,

ich habe ein problem ich will zwei ungerade Zahlen addieren (Format: 2,45)
wenn ich die Zahlen mit dem Komma addiere rechnet php nur mit der ersten Stelle.
Wenn ich das Komma in einen Punkt umwandle Rechnet er richtig, aber wenn die Zahlen nur 2,90 und 2,60 lauten, lässt er die null am ende weg. Was kann ich machen

Rechnung: 2,90 + 3,25
 
1. Ungerade Zahlen sind in erster Linie natürliche oder vielleicht noch ganze Zahlen, haben also überhaupt keinen Nachkommaanteil. Was du meinst sind rationale Zahlen.

2. Dein Problem kannst du mit number_format() und dem erwähnten str_replace() lösen.

Beste Grüße
 
habe ich gemacht aber es passiert folgendes:
Die Zahlen nach dem Komma werden einfach mit einer 0 überschrieben.
Also wenn ich mit folgende Zahlen rechne:
3,90+5,25=4,20 aber es wird folgendes ausgegeben 8,00 was kann ich noch
machen


Gruß Holger
 
PHP basiert auf dem englischen System, welches Punkte als Trennzeichen bei Dezimalzahlen verwendet. Somit müsstest du deine Werte entsprechend anpassen.
 
Das habe ich ja, ich wandle die werte mit dem Komma um und ersetzte das komma durch
einen punkt. Speichere diesen Wert dann mit dem punkt in der datenbank. Wenn ich sie dann wieder auslese aus der Datenbank, rechne ich mit dem Punkt und wandle den Punkt dann in ein Komma wieder um. Wenn ich mir das Ergebnis dann anzeigen lasse und macht er aus den letzten beiden stellen eine null
 
Schau Dir mal folgendes kleines Beispiel an:
PHP:
$test1 = "2,55";
$test2 = "6,33";
$test1 = str_replace(",", ".", $test1);
$test2 = str_replace(",", ".", $test2);
$test3 = $test1 + $test2;
$test3 = str_replace(".", ",", $test3);
print $test3;
Da kommt wunderbar "8,88" als Ergebnis raus.
Wenn Du jetzt jedoch 2,50 + 6,30 rechnen willst, kommt 8,8 raus.
Aber da könntest Du ja überprüfen wieviele Stellen nach dem Komma stehen und diese dann ggf. mit einer bzw. zwei 0 auffüllen.

redlama
 
Mulitpliziere deine Zahl mit 100 = 260
Dann machst % = 260%10 und wenn dann 0 rauskoommt, ängst einfach ne null hinten dran.
Woebei probier auch mal round und mit 2 nachkommastellen
 
Du hast bestimmt zuerst mit str_replace() den Punkt in ein Komma gewandelt und dann erst mit number_format() gearbeitet. Mach's andersrum, dann sollte es funktionieren.
 
Folgendes wäre auch möglich:
PHP:
<?php
	$var1 = '2,50';
	$var2 = '6,30';
	$var1 = (float)str_replace(array('.', ','), array('', '.'), $var1);
	$var2 = (float)str_replace(array('.', ','), array('', '.'), $var2);
	echo number_format(($var1+$var2), 2, ',', ' ');
?>
 
Zurück