 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
20.05.2008, 21:05
|
#1
|
|
TP-Senior
Registriert seit: Dec 2002
Ort: Langenthal
|
Preise einheitlich formatieren
Hallo,
wie kann man z.B. folgende Zahlen auf einen gemeinsamen "Nenner" in PHP formatieren?
Folgende Zahlen aus einer DB werden eingelesen:
38,5
19,99
10
47,5
Ausgabe sollte nun für alle Zahlen wie folgt aussehen:
38,50
19,99
10,00
47,50
Ich habe es schon mal mit number_format() ausprobiert, aber da kamen alle Zahlen wie folgt aus:
38,00
19,00
10,00
47,00
Die Zahlen wurden zwar zweistellig nach dem Komma dargestellt, aber alles wurde abgerundet.
Wie könnte man dies sonst noch lösen?
Danke für jegliche Hinweise.
|
|
|
20.05.2008, 21:16
|
#2
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Zitat:
Zitat von Pixelmaster
Ich habe es schon mal mit number_format() ausprobiert, aber da kamen alle Zahlen wie folgt aus ...
|
Aha, auf number_format bist Du gekommen, aber nicht auf money_format, obwohl das in der Dokumentation, wie üblich, als Querverweis direkt unter dem Referenzbeispiel steht?! 
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
20.05.2008, 22:23
|
#3
|
|
TP-Senior
Registriert seit: Dec 2002
Ort: Langenthal
|
Hallo Rizzo,
ja, das mit dem money_format ist ein guter Hinweis, aber wie packe ich es nun an?
Folgende Variable muss so formatiert werden: $DS[1] und zwar in folgendem Codeschnipsel:
Code:
printf($fmt2,$key,$DS[0],$DS[1],$key);
Ich hab's schon mal so ausprobiert, aber da hat sich nichts gerührt:
Code:
printf($fmt2,$key,$DS[0],money_format($DS[1],2),$key);
oder wie müsste man dann dieses Teil richtig einbauen?
|
|
|
21.05.2008, 07:46
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Bei mir läuft money_format zwar nicht, aber number_format richtig angewandt reicht völlig, oder überseh ich hier was?
PHP-Code:
$geld = 19.99;
echo number_format($geld , 2, '.', ',')." €";
echo '<br>';
echo number_format($geld , 2, ',', '.')." €";
#Ausgabe:
#19.99 €
#19,99 €
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
21.05.2008, 19:38
|
#5
|
|
TP-Senior
Registriert seit: Dec 2002
Ort: Langenthal
|
Hallo StephanF,
das Problem bei mir ist, dass es sämtliche Zahlen abrundet und dann erscheinen sie so 38,00 (richtig wäre aber 38,50). Wenn ich es mit number_format() mache, dann kriege ich diese Ergebnisse. Woran könnte es liegen, dass die Zahlen abgerundet werden? 
|
|
|
22.05.2008, 10:46
|
#6
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
welcher datentyp wird in der DB für die Werte den verwendet?
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
22.05.2008, 12:50
|
#7
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Zitat:
Zitat von Pixelmaster
das Problem bei mir ist, dass es sämtliche Zahlen abrundet und dann erscheinen sie so 38,00 (richtig wäre aber 38,50).
|
Dann sorge doch vor der Übergabe an number_format einfach dafür, dass eine korrekt gerundete Zahl uebergeben wird. round() fällt mir da zufällig ein. 
|
|
|
22.05.2008, 17:32
|
#8
|
|
TP-Senior
Registriert seit: Feb 2008
Ort: Marl
|
Zitat:
|
Hinweis: The function money_format() is only defined if the system has strfmon capabilities. For example, Windows does not, so money_format() is undefined in Windows.
|
Gebe StephanF recht (number_format).
Schau, welcher Datentyp da angeflogen kommt, wie ist denn die Ausgabe deiner DB_Abfrage direkt? Auch gerundet? Überprüfe, ob die Werte korrekt in der DB stehen, ansonsten wäre der Quelltext gut (bitte inkl. Datentyp der SQL-Spalte für deinen Preis), Glaskugeln waren gestern ausverkauft.
|
|
|
22.05.2008, 17:40
|
#9
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Zitat:
Zitat von Pixelmaster
Die Zahlen wurden zwar zweistellig nach dem Komma dargestellt, aber alles wurde abgerundet.
|
Also ich kann das nicht bestätigen. Ich nutze das ebenso und habe ganz normale Ausgaben.
PHP-Code:
function print_preis($preis,$nachkommastellen=2,$euro=1)
{
$ret=number_format($preis, $nachkommastellen, ',', '.');
if ($euro) $ret.=' €';
return $ret;
}
Bist Du sicher, dass Du nicht versehentlich selbst für ein Abrunden sorgst (eventuell durch Typumwandlung von float nach integer)?
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:23 Uhr.
|
 |