Je dois afficher les évaluations et pour cela j'ai besoin des incréments comme suit:
Si le nombre est 1,0, il doit être égal à 1
Si le nombre est 1,1 doit être égal à 1
Si le nombre est 1,2 doit être égal à 1
Si le nombre est 1,3 doit être égal à 1,5
Si le nombre est 1,4 doit être égal à 1,5
Si le nombre est 1,5 doit être égal à 1,5
Si le nombre est 1,6 doit être égal à 1,5
Si le nombre est 1,7 doit être égal à 1,5
Si le nombre est 1,8 doit être égal à 2,0
Si le nombre est 1,9 doit être égal à 2.0
Si le nombre est 2.0 doit être égal à 2.0
Si le nombre est 2.1 doit être égal à 2.0
et ainsi de suite ...
Existe-t-il un moyen simple de calculer les valeurs requises?
Réponses:
Multipliez votre note par 2, puis arrondissez avec
Math.Round(rating, MidpointRounding.AwayFromZero)
, puis divisez cette valeur par 2.Math.Round(value * 2, MidpointRounding.AwayFromZero) / 2
la source
Multiplier par 2, arrondir, puis diviser par 2
si vous voulez le quart le plus proche, multipliez par 4, divisez par 4, etc.
la source
Voici quelques méthodes que j'ai écrites qui seront toujours arrondies à n'importe quelle valeur.
la source
Il existe plusieurs options. Si les performances sont un problème, testez-les pour voir lequel fonctionne le plus rapidement dans une grande boucle.
la source
la source
On dirait que vous devez arrondir au 0,5 près. Je ne vois aucune version de
round
dans l'API C # qui fait cela (une version prend un certain nombre de chiffres décimaux pour arrondir, ce qui n'est pas la même chose).En supposant que vous n'ayez à gérer que des nombres entiers de dixièmes, il suffit de calculer
round (num * 2) / 2
. Si vous utilisez des décimales arbitrairement précises, cela devient plus délicat. Espérons que non.la source
J'ai également eu des difficultés avec ce problème. Je code principalement en Actionscript 3.0 qui est le codage de base pour la plateforme Adobe Flash, mais il y a des similitudes dans les langues:
La solution que j'ai trouvée est la suivante:
C'est à peu près tout. Notez l'utilisation des «nombres» et des «entiers» et la façon dont ils sont traités.
Bonne chance!
la source
la source
La bonne façon de procéder est:
la source