Maison >développement back-end >C++ >Comment puis-je arrondir une entrée continue à la demi-valeur la plus proche en programmation ?

Comment puis-je arrondir une entrée continue à la demi-valeur la plus proche en programmation ?

DDD
DDDoriginal
2025-01-06 02:28:41855parcourir

How Can I Round a Continuous Input to the Nearest Half-Value in Programming?

Rapprocher les intervalles rationnels avec les demi-valeurs les plus proches

Déterminer la valeur arrondie appropriée pour représenter une entrée continue, telle qu'une note, peut être une tâche courante en programmation. À des fins d'affichage, il peut être souhaitable d'incrémenter les valeurs selon des intervalles spécifiques, comme des demi-valeurs (par exemple, 1, 1,5, 2).

Arrondi à la demi-valeur la plus proche

Pour obtenir ce comportement d'arrondi, les étapes suivantes peuvent être utilisées :

  1. Multipliez la valeur d'entrée par 2, doublant ainsi l'intervalle d'incrémentation.
  2. Utilisez Math.Round avec le paramètre MidpointRounding.AwayFromZero, qui arrondit les valeurs à partir de zéro, garantissant que les valeurs fractionnaires sont toujours arrondies.
  3. Divisez les valeurs arrondies. valeur par 2 pour revenir à l'incrément d'origine échelle.

Exemple :

double rating = 1.3;
double roundedRating = Math.Round(rating * 2, MidpointRounding.AwayFromZero) / 2;

Ce calcul donnerait une note arrondie de 1,5, répondant au comportement d'arrondi souhaité décrit dans le tableau d'exemple.

Autres considérations

Il est important de s'assurer que la valeur d'entrée se situe dans la plage d'incrémentation souhaitée. pour un comportement optimal. De plus, pour les valeurs exactement à mi-chemin entre deux points d’incrémentation, le paramètre MidpointRounding.AwayFromZero arrondira toujours au chiffre supérieur. Cette approche fournit un comportement d'arrondi cohérent, même pour les cas limites.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn