Maison > développement back-end > C++ > Existe-t-il une fonction Round intégrée en C et comment puis-je en implémenter une ?

Existe-t-il une fonction Round intégrée en C et comment puis-je en implémenter une ?

Barbara Streisand
Libérer: 2024-12-31 10:02:21
original
192 Les gens l'ont consulté

Is There a Built-in Round Function in C   and How Can I Implement One?

Arrondir les valeurs à virgule flottante en C

La question se pose de savoir si la bibliothèque C standard inclut une fonction nommée round() pour faciliter l'arrondi des valeurs à virgule flottante. Malgré la présence de ceil() et floor() dans l'en-tête math.h, round() reste absent.

Implémentation d'une fonction d'arrondi

Bien que round() n'est pas disponible nativement dans la bibliothèque standard C 98, son implémentation est relativement simple. Voici un exemple de fonction d'arrondi à moitié :

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

Cette implémentation calcule la valeur arrondie en ajoutant 0,5 à l'entrée, puis en appliquant la fonction plancher pour tronquer le résultat.

Raison de son absence dans la bibliothèque standard C 98

L'omission de round() du La norme C 98 découle probablement du fait qu’elle peut être mise en œuvre de différentes manières. L'approche de l'arrondi à moitié est couramment utilisée, mais d'autres méthodes d'arrondi, telles que l'arrondi au pair, existent. La mise en œuvre de ces différentes approches ajoute de la complexité à la bibliothèque standard.

Solutions C modernes

C 11 a introduit les fonctions round() intégrées : std::round, std : :lround et std::llround. Ceux-ci offrent un moyen plus robuste et efficace d'effectuer des opérations d'arrondi sur des valeurs à virgule flottante.

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 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