Dag mensen,

ik zoek een mySQL functie die kan afronden op halven, als in;

1 blijft 1
1,2 wordt 1
1,6 wordt 1,5
2,7 wordt 2,5
2,3 wordt 2,5
2,2 wordt 2
3,4 wordt 3,5
u.s.w

Dit is de query in kwestie;

SELECT IFNULL((SUM(waarde) / COUNT(*)),0) AS waardering FROM rating

Iemand een suggestie ? Misschien iets met Ceil ?

Groet,

Twan van der Poel

edit; veld `waardering` dient dus afgerond te worden

SELECT IFNULL(round((SUM(waarde) / COUNT(*))),0) AS waardering FROM rating
wss heel ver gezocht maar....

2,7 * 2 = 5,4
5,4 naar 5. floor()
delen door 2 = 2,5.
complimenten, ik vind het eigenlijk wel leuk gevonden. Maar het klopt niet altijd.

En soortgelijke oplossingen komen work-arround achtig over, iemand nog suggesties ?
klopt wel altijd? :P maar idd... er zal we een functie voor zijn denk ik. Good luck finding it.

ik ga doen waar ik het beste in ben.

slaaaapen. en dan morgen weer coden. jippie! lang leven nerd zijn. the chicks dig it :P
12,8 * 2 = 25,6
floor 25,6 = 25

25 / 2 = 12,5 Terwijl het 13 zou moeten zijn
naja, afronden naar dichs bijzijnde dan. dat was de bedoeling. floor deed ik omdat het bij die berekening paste :P
ik ga ook naar bed, kom dr nog wel op terug.

mzzl

<?php
$nums = array(1 => 1, 2 => 1.2, 3 => 1.6, 3 => 2.7, 4 => 2.3, 5 => 2.2, 6 => 3.4);

foreach($nums as $num) {
	echo round(($num*2), 0)/2 .'<br />';
}
?>

/* output:
1
1
2.5
2.5
2
3.5
*/


werkt perfect..
Zo?

SELECT FLOOR(2*waarde + 0.5)/2 AS afgeronde_waarde 
FROM ...
bumb

- is er niet een parameter voor floor of round om de tussenwaarde te bepalen ?
- iemand anders nog suggesties ?

Reageren