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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
20.09.2005, 19:19:51
|
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
|
20.09.2005, 20:04:03
|
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())
|
20.09.2005, 21:14:56
|
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
|
20.09.2005, 21:50:43
|
|
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.
|
20.09.2005, 23:19:13
|
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)
|
21.09.2005, 09:13:14
|
|
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.
|
21.09.2005, 12:25:41
|
|
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.
|
21.09.2005, 22:49:36
|
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
|
21.09.2005, 23:16:24
|
|
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:
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.
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:34:59 Uhr.
|