Avatar billede razmuz_dk Nybegynder
30. maj 2006 - 12:47 Der er 3 kommentarer og
1 løsning

ROUND() giver et underligt resultat

Er det mig der koger helt vildt eller giver det her ikke så meget mening??

mysql> SELECT ROUND(1.5);
+------------+
| ROUND(1.5) |
+------------+
|          2 |
+------------+
1 row in set (0.00 sec)

mysql> SELECT ROUND(2.5);
+------------+
| ROUND(2.5) |
+------------+
|          2 |
+------------+
1 row in set (0.00 sec)

Jeg kører en Mysql 4.1.15 på Debian.

På forhånd tak.
- Rasmus
Avatar billede arne_v Ekspert
30. maj 2006 - 12:51 #1
Det hedder bankers rounding og er meget brugt i udlandet.

Læs evt. http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html under ROUND

På ældre versioner førend 5.0.3 brug FLOOR(felt+0.5)
Avatar billede razmuz_dk Nybegynder
30. maj 2006 - 13:02 #2
Okayer, der kan man bare se. Tak. Har lige lavet lidt hurtig research om det og fandt denne side som omhandler en masse forskellige rounding algorithms:
http://www.pldesignline.com/howto/showArticle.jhtml;?articleID=175801189

Okay jeg må jo bruge FLOOR() så - men findes der da en "normal" rounding i mysql-versioner efter 5.0.3 eller hvad?

Smid et svar by the way :)
Avatar billede arne_v Ekspert
30. maj 2006 - 13:02 #3
MySQL docs hævder at de har rettet noget i 5.0.3

og svar
Avatar billede razmuz_dk Nybegynder
30. maj 2006 - 13:08 #4
Okayer :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester