Ik probeer getallen aan de hand van een criteria af te ronden naar een heel getal wat altijd een 10-variant is.
Ik bedoel dus:
19.20 = 19.20 | 19.50 = 20.00 | 19.80 = 20.00 | 20.50 = 20.00 | 20.80 = 20.8
Hierbij wil ik alleen een referentie kunnen stellen waarbij er afgerond mag worden of dat het getal gewoon het getal blijft, bovenstaan is dat .50 bijvoorbeeld.
Ik zou dus het referentiepunt flexibel willen maken, maar dat is voor latere zorg.
Een dergelijke functie als onderstaand zet alles boven de x5 naar x0 omhoog en alles onder de x5 naar x0 naar bendenden
dus:
15= 20
14=10
Ik probeer dus uit te vogelen hoe ik er voor kan zorgen aan de hand van mijn eerste voorbeeld hoe je een referentie punt kun stellen rond een X getal waarbij een veelvoud van de X gewoon X*veelvoud is, echter moet het wel zo zijn dan er altijd afgerond wordt rond de X gebruikmakend van het refrentiegetal dat om X heen mag hangen.
Dit is best lastig om te doen, hoewel het met div/round/mul zou moeten kunnen lukken.
Iemand een helpende hand hierin ?
edit
En stuk code dat het vanaf 19.50 gaat doen naar 20 is:
Alleen bij 20.5 round hij naar 21.
Je zou het ook zo kunnen zien:
20 = 2 met als afwijking 0.50 naar boven en beneden.
30 = 3 met als afwijking 0.50 naar boven en beneden.
etc.
Ik zou alleen graag willen proberen de marge van 0.50 in te stellen in het script, dus hier kies je voor.
Tevens zou je natuurlijk ook kunnen zeggen:
18 = 1 met een afwijking van 2.0
36 = 2 met een afwijking van 2.0
Je kent dus getallen een "waarde" toe met een afwijking in gedachte genomen.
Is dit te realiseren ?
Ik bedoel dus:
19.20 = 19.20 | 19.50 = 20.00 | 19.80 = 20.00 | 20.50 = 20.00 | 20.80 = 20.8
Hierbij wil ik alleen een referentie kunnen stellen waarbij er afgerond mag worden of dat het getal gewoon het getal blijft, bovenstaan is dat .50 bijvoorbeeld.
Ik zou dus het referentiepunt flexibel willen maken, maar dat is voor latere zorg.
Een dergelijke functie als onderstaand zet alles boven de x5 naar x0 omhoog en alles onder de x5 naar x0 naar bendenden
dus:
15= 20
14=10
code:
1
2
3
4
| function t_round($num) { return ($num % 10 >= 5 ? ceil($num / 10)*10 : floor($num / 10)*10); } print t_round(15); |
Ik probeer dus uit te vogelen hoe ik er voor kan zorgen aan de hand van mijn eerste voorbeeld hoe je een referentie punt kun stellen rond een X getal waarbij een veelvoud van de X gewoon X*veelvoud is, echter moet het wel zo zijn dan er altijd afgerond wordt rond de X gebruikmakend van het refrentiegetal dat om X heen mag hangen.
Dit is best lastig om te doen, hoewel het met div/round/mul zou moeten kunnen lukken.
Iemand een helpende hand hierin ?
edit
En stuk code dat het vanaf 19.50 gaat doen naar 20 is:
code:
1
2
3
4
| $num2 = 19.1; $rounded2 = round($num2); if($rounded2 == round($rounded2 / 10) * 10) $num2 = $rounded2; echo $rounded2; |
Alleen bij 20.5 round hij naar 21.
Je zou het ook zo kunnen zien:
20 = 2 met als afwijking 0.50 naar boven en beneden.
30 = 3 met als afwijking 0.50 naar boven en beneden.
etc.
Ik zou alleen graag willen proberen de marge van 0.50 in te stellen in het script, dus hier kies je voor.
Tevens zou je natuurlijk ook kunnen zeggen:
18 = 1 met een afwijking van 2.0
36 = 2 met een afwijking van 2.0
Je kent dus getallen een "waarde" toe met een afwijking in gedachte genomen.
Is dit te realiseren ?
[ Voor 23% gewijzigd door Verwijderd op 02-02-2009 04:04 ]