[SQL] ROUND op 2 decimalen

Pagina: 1
Acties:
  • 3.342 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

Anoniem: 71874

Topicstarter
Ik heb een database met zon 3000 rijen, met o.a. 1 prijskolom. Daarin staan prijzen, die ik graag afgerond wil terug zien op mijn website. Tabel heeft o.a. prijzen in formaat als dit:
1437.344
673.4343535
870.235535

Wanneer ik de volgende query uitvoer:

SELECT ROUND((Prijs),2) FROM `tabel`

Dan geeft ie de prijzen weer als:
1437.00
673.00
870.00

Hoe kan de prijzen zo afronden dat de 2 decimalen afgerond worden op de 3 decimal...Dus dat je als resultaat krijg:

1437,34
673,43
870,24

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Wat is prijs voor veldtype? Text? Varchar?

En waarom laat je het afronden niet door de site zelf doen; database is goed in opslaan en teruggeven van data; het weergeven van data van een ander onderdeel doen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Anoniem: 71874

Topicstarter
Varchar type

Als ik afrond rond hij af per karakter en niet per heel getal:
zo sorteert ie op prijs als volgt:

€ 100,24
€ 100,45
€ 100,70
€ 100,91
€ 1007,64
€ 101,25

Afronden in php-script zelf? floor of round ofzo?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

http://www.php.net/manual/en/function.round.php

En floor, ceiling en round zijn niet hetzelfde. Verder vraag ik me af waarom je getallen als varchar opslaat; je krijgt dan gelijk het probleem met regional settings.

Verder is het sorteren logisch; je sorteert alfabetisch, niet op 'nummerwaarde'. Je zult dan eens kijken of je de waarde niet kan converten naar een getal.

[ Voor 102% gewijzigd door gorgi_19 op 30-11-2003 15:09 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 01-06 11:51

Janoz

Moderator Devschuur®

!litemod

Om te beginnen is het handiger om het juiste type voor een veld te kiezen. Reken bewerkingen en sorteringen gaan natuurlijk nooit werken waneer je numerieke waardes in tekst velden op gaat slaan. Hiervoor hebben ze het type float. Voor bedragen is vaak ook nog het currency type aanwezig.

Ik raad je aan om het veld type aan te passen. Door varchar te blijven gebruiken zul je alleen maar tegen dit soort problemen aan blijven lopen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'