Mysql Nachkommastellen (0) abschneiden?

...komplette Frage anzeigen

4 Antworten

Zum Abschneiden nimm' in PHP die floor Funktion, die schneidet alle Nachkommastellen weg.
Um auf 2 Nachkommastellen zu kürzen mltiplzierst Du den Wert zunächst mit 100, kürzt ihn und teilst ihn wieder durch hundert.

x = floor (x*100) / 100;



Wenn Du lieber runden statt abschneiden willst, nimm round:

x = round (x*100) / 100;



Noch eleganter ist die Funktion number_format
Da kannst Du dann bestimmen wie der Zeichen für Dezimalstelle und zur Gruppierung der Tausender aussehen.

Syntax: ZAHL = number_format (ZAHL, Nachkommastellen, Dezimaltrennzeichen, Tausendertrennzeichen)

$x = number_format($x, 2, ',', '.');


Das würde aus 1234,567 dann 1.234,57 machen - arbeitet also wie round().
Wenn Du's in eine Datenbank schreibst brauchst Du aber keine Tausendertrennzeichen und als Dezimaltrenner enen Punkt:

$x = number_format($x, 2, '.', '');
Antwort bewerten Vielen Dank für Deine Bewertung

Das nützt dir nix, da du in der DB 3 Nachkommastellen definiert hast. PHP "schneidet" das eh schon automatisch ab, MySQL fügt die Nullen aber wieder hinzu - eben aufgrund der definierten 3 Nachkommastellen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Evergreen89
02.03.2017, 10:18

Meine Frage war ein wenig undeutlich.

Ich meine natürlich wenn ich die Daten wieder aus der DB auslese.

0

Eventuell hilft DIr das weiter:

ROUND(), CEIL() oder FLOOR() zum runden auf eine bestimmte Länge der Nachkommastelle.

SELECT ROUND( xy,....

dazu gibt es noch String-Funktionen womit man alles mögliche machen kann,

z.B. Nullen wegschneiden:

https://dev.mysql.com/doc/refman/5.7/en/string-functions.html

Antwort bewerten Vielen Dank für Deine Bewertung

Schau dir mal Reguläre Ausdrücke (Regex) an. Damit lässt sich das ohne Probleme und vorallem ohne Fehler (wie bei den anderen Antworten) lösen.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?