Maison > développement back-end > C++ > Comment puis-je implémenter une fonction d'arrondi en C ?

Comment puis-je implémenter une fonction d'arrondi en C ?

Linda Hamilton
Libérer: 2025-01-04 04:09:38
original
928 Les gens l'ont consulté

How Can I Implement a Rounding Function in C  ?

Arrondir les nombres à virgule flottante en C avec round()

En l'absence de fonction round() dédiée dans la bibliothèque C standard , les développeurs ont souvent recours à d'autres fonctions comme ceil() ou floor(). Cependant, pour un contrôle de précision, une fonction d'arrondi spécifique est souvent requise.

Implémentation d'une fonction round() personnalisée

La fonction round() arrondit un nombre à virgule flottante basé sur la règle « arrondi à moitié », où les nombres exactement à mi-chemin entre les nombres entiers sont arrondis. Le code C suivant fournit une implémentation de cette fonction :

double round(double d) {
  return floor(d + 0.5);
}
Copier après la connexion

Cette implémentation ajoute essentiellement 0,5 au nombre et tronque le résultat à l'entier le plus proche à l'aide de la fonction floor().

Autres méthodes d'arrondi

Bien que la règle « arrondi à moitié » soit couramment utilisée, il existe d'autres méthodes d'arrondi. méthodes, notamment :

  • Arrondir à pair : Cette méthode arrondit les nombres à mi-chemin entre les nombres entiers au nombre pair le plus proche, réduisant ainsi les biais.
  • Arrondir vers le bas : Cette méthode arrondit toujours les nombres vers le négatif l'infini.
  • Arrondir vers le haut : Cette méthode arrondit toujours les nombres vers l'infini positif.

Les implémentations de ces méthodes peuvent être trouvées en ligne ou créées sur mesure en fonction de critères spécifiques. exigences.

Remarque :

La norme C 11 a introduit Fonctions round() intégrées (std::round, std::lround et std::llround) qui fournissent des fonctionnalités similaires, rendant une implémentation personnalisée inutile pour les compilateurs modernes et les bibliothèques standard.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal