Runden?

Goaly
Hallo.

Gibt es einen MySQL-Befehl um zu runden? Wenn der Wert 6.783.278 ist, soll er auf 6.800.000 gerundet werden. Geht das?
derkleene
Wieso bei so einer einfachen Frage nicht einfach mal Google fragen?? hätte bestimmt was gefunden bei runden und php

aber bin heute mal nicht so.

probie es einfach mit round()

round(Double, Ganzzahl Genauigkeit)

Wert: Double

Dies ist eine mathematische Rundung, es wird somit nach dem mathematischen Regeln auf- oder abgerundet.

Wenn benötigt kann man eine ganzzahlige genauigkeit angegeben werden, es wird dann auf die angegebene Zahl von Stellen hinter dem Komma gerundet.

Bsp: echo round(3.6345,2);

Ergibt: 3.63
Goaly
Ja, das habe ich auch schon herausgefunden. Ich will allerdings in phpMyAdmin den Befehl eingeben und hatte an sowas gedacht:
update ws_spieler round(marktwert,2)

Das geht aber nicht.. unglücklich
derkleene
Per PHPMyAdmin ist mir kein Befehl bekannt.
Nur per php.

Aber vielleicht hilft dir das ja uach weiter.

$db->query("UPDATE bb".$n."_users SET guthaben = '".round($marktwert,2)."' WHERE userid = $wbbuserdata[userid]");

so sollte es aber gehen.

Das oben ist nur ein Beispiel.

wen nes nicht geht mach es so:

$test=round($marktwert,2)

$db->query("UPDATE bb".$n."_users SET guthaben = '".$test."' WHERE userid = $wbbuserdata[userid]");

Wenn nicht muß sich mal jemand anders zu Wort melden, der evtl weiß ob es geht.
24Bytes
Ich hab mal ein bissl gegooglet, laut google kann man ROUND() auch direkt in MySQL befehlen benutzen... wäre mir zwar neue, aber versuchs doch mal ?
ThBodi
Google sollte zwar immer Dein Freund sein, aber manchmal, wenn man mit ein wenig Verstand ran geht, gehts auch einfacher:

PHP-Dokumentation

MySQL-Dokumentation

Die mysql-Funktion round() findet man hier.
Goaly
Habe es jetzt so weit geschafft.:
update ws_spieler SET marktwert = round(marktwert,6)

Das letzte Problem. Es sind Millionen-Werte also so wie:
1.145.564
3.545.345
10.454.503
2.535.432
Aber das sind ja schon gerade Zahlen. Habe mir dann überlegt, die gesamte Zahlen durch 1.000.000 zu teilen und dann zu runden. Problem: Diese Spalte der Tabelle hat den Typ INT 10, der allerdings keine Kommastellen anerkannt. Wie kann ich dieses Problem lösen?
lycoos
ThBodi
Zitat:
Original von ThBodi
...
Die mysql-Funktion round() findet man hier.


Lesen soll bilden, hab ich gehört.

code:
1:
SELECT ROUND(6783278,-6);


Ich frag' mich manchmal, was Menschen dazu antreibt, etwas "programmieren" zu wollen, wenn sie noch nicht mal in der Lage sind, eine Dokumentation zu lesen ...?
Goaly
Zitat:
Original von lycoos
Lese dir das mal in Ruhe durch


http://dev.mysql.com/doc/refman/5.1/de/numeric-types.html


Habe ich gemacht und den Typ auf "DECIMAL" gestellt und trotzdem nimmt er keine Kommazahlen an? Was mache ich falsch?

@ThBodi: Das ist ja auch zur Zeit gar nicht mein Problem, sondern dass er keine Dezimalzahlen annimmt!
ShadowByte
Zitat:
Original von ThBodi
Ich frag' mich manchmal, was Menschen dazu antreibt, etwas "programmieren" zu wollen, wenn sie noch nicht mal in der Lage sind, eine Dokumentation zu lesen ...?


Das ist in der Tat etwas merkwürdig. geschockt
Goaly
Zitat:
Original von ShadowByte
Zitat:
Original von ThBodi
Ich frag' mich manchmal, was Menschen dazu antreibt, etwas "programmieren" zu wollen, wenn sie noch nicht mal in der Lage sind, eine Dokumentation zu lesen ...?


Das ist in der Tat etwas merkwürdig. geschockt


Ehm, aber ist es der Zweck dieses Threads darüber zu reden? Nein. Ich habe die Dokumentation sehr wohl gelesen, aber nicht wirklich das umsetzen können, was ich wollte und deshalb hier gefragt. Augenzwinkern Also bleibt mal ganz locker.
lycoos
Hast du dich schon über float informiert?

PS:


Diese Pseudcodces finde ich immer goil :

php:
1:
update ws_spieler round(marktwert,2)