SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.09.2005, 19:19:51
wollenschlaeger wollenschlaeger ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Augsburg
Alter: 48
Beiträge: 116
number_format

Hallo Zusammen,

ich habe wahrscheinlich ein ganz einfaches Problem.

Ich übergebe einen Betrag von 15,88 und will diesen in einer Datenbank speichern.
PHP-Code:
$betrag number_format($betrag,2,".",","); 
Wenn ich mir den Betrag vor der Formatierung ausgeben lasse, dann kommt 15,88 nach der Formatierung kommt 15.00. Das ist sehr merkwürdig.

Könnt Ihr mir vielleicht einen Tipp geben?

Gruss
Roland
Mit Zitat antworten
  #2  
Alt 20.09.2005, 20:04:03
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
AW: number_format

Das ist nur so lange merkwürdig, wie man glaubt, dass PHP Zahlen mit Dezimalstellen mit Komma behandelt.

Darum: PHP nutzt den Punkt als Dezimalkommadingens.

Entweder Du denkst Dir was anderes aus mit den Nachkommastellen (str_pad() z.B.) oder Du schreibst das Komma in einen Punkt um (str_replace())
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 20.09.2005, 21:14:56
volti volti ist offline
Junior Member
 
Registriert seit: Nov 2002
Ort: Freigericht-Somborn
Alter: 67
Beiträge: 199
AW: number_format

Hallo,
dummerweise arbeiten die meisten bzw. fast alle Programme im amerikanischen Zahlenformat und das ist obendrein auch noch gerade umgekehrt wie unser deutsches. Da wird man nicht um (selbstgemachte) Umrechnungsfunctions wie SetAmi(wert) oder GetGerman(wert) herumkommen. Das gilt nicht nur für php sondern auch für js und vieles mehr.
__________________
viele Grüße
KH
Mit Zitat antworten
  #4  
Alt 20.09.2005, 21:50:43
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: number_format

Was ja auch irgendwo logisch ist, wenn man bedenkt, dass die meisten Programmiersprachen ans Englische angelehnt sind.
Mit Zitat antworten
  #5  
Alt 20.09.2005, 23:19:13
wollenschlaeger wollenschlaeger ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Augsburg
Alter: 48
Beiträge: 116
AW: number_format

OK, mal vielen Dank für die Hinweise.

Doch mit dem number_format sollte ich doch 15,88 zum speichern in die Datenbank in 15.88 umwandeln können. Nun, wenn ich dies mache, wandelt er das Ganze offenbar in 15.00 um, obwohl in der Datenbank das Feld float(5,2) definiert ist.

Das Beispiel hier in Selfphp lautet

echo number_format(2120,2,".",",");

Somit würde das amerikanische Format ja eigentlich erstellt werden, oder?

Geändert von wollenschlaeger (20.09.2005 um 23:20:37 Uhr)
Mit Zitat antworten
  #6  
Alt 21.09.2005, 09:13:14
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: number_format

Zitat:
Zitat von wollenschlaeger
ODoch mit dem number_format sollte ich doch 15,88 zum speichern in die Datenbank in 15.88 umwandeln können. Nun, wenn ich dies mache, wandelt er das Ganze offenbar in 15.00 um, obwohl in der Datenbank das Feld float(5,2) definiert ist.
Dann müsstest du jetzt mal zeigen, wie du das Ganze machst.
Mit Zitat antworten
  #7  
Alt 21.09.2005, 12:25:41
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: number_format

Zitat:
Zitat von wollenschlaeger
Doch mit dem number_format sollte ich doch 15,88 zum speichern in die Datenbank in 15.88 umwandeln können.
Das geht nicht, weil 15,88 kein float ist sondern ein String.

string number_format ( float number [, int decimals])

Du mußt stattdessen str_replace() verwenden.
Mit Zitat antworten
  #8  
Alt 21.09.2005, 22:49:36
volti volti ist offline
Junior Member
 
Registriert seit: Nov 2002
Ort: Freigericht-Somborn
Alter: 67
Beiträge: 199
AW: number_format

Hallo,
als Value beim number_format wird schon ein Wert im Ami-Format erwartet. Wenn Du hier mit Kommata arbeitest, interpretiert php das Komma als Tausender(punkt) und da nur zwei statt drei Stellen nachfolgen, wird der Rest einfach abgeschnitten und es bleibt -> 15 -> 15.00.
Zum Formatieren vom Ami- ins Deutsch-Format kannst Du number_format dagegen schon gut verwenden, indem einfach die beiden letzten Parameter entsprechend gesetzt werden.

@Meikel: Auf den ersten Blick mag Deine Erklärung richtig sein, allerdings dürfte dann als Wert wohl 0 rauskommen, den ein String hat keinen Zahlenwert oder?

Übrigens werden derartige deutsche Zahlenangaben auch beim Rechnen mit JS mit nur zwei Nachkommastellen einfach abgeschnitten; hat man jedoch drei Nachkommastellen kommt eine schöne Zahl im Tausenderbereich heraus.
15,01 -> 15.00
15,012 -> 15012.00
__________________
viele Grüße
KH
Mit Zitat antworten
  #9  
Alt 21.09.2005, 23:16:24
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: number_format

Zitat:
Zitat von volti
@Meikel: Auf den ersten Blick mag Deine Erklärung richtig sein,
Sie ist auch dann richtig, wenn man es mal ausprobieren würde.

PHP-Code:
<?php
echo (integer)'15,88';
?>
Ausgabe:
Code:
15
Zitat:
allerdings dürfte dann als Wert wohl 0 rauskommen, den ein String hat keinen Zahlenwert oder?
Du solltest weniger raten und mehr testen, wenn Du etwas nicht weißt.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:34:59 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt