Existe-t-il une fonction de signe standard dans C/C ?
Question :
Je je cherche une fonction qui génère -1 pour les nombres négatifs et 1 pour les nombres positifs. Malgré sa simplicité, je soupçonne que cette fonctionnalité peut être disponible quelque part dans une bibliothèque standard. Plus précisément, j'ai besoin d'une fonction qui fonctionne sur les types de données float.
Réponse :
Oui, il existe une fonction C standard qui sert à cet effet, connue sous le nom de signum. Cependant, il est important de noter que cette fonction est de type sécurisé, ce qui signifie qu'elle peut fonctionner sur différents types de données, pas seulement sur les flottants. Voici une implémentation générique de signum :
template <typename T> int sgn(T val) { return (T(0) < val) - (val < T(0)); }
Cette fonction offre plusieurs avantages par rapport aux implémentations personnalisées :
Utilisation :
int sign = sgn(-1.5); // -1 sign = sgn(0.0); // 0 sign = sgn(3.14); // 1
Mises en garde :
En conclusion, la fonction signum fournit une solution polyvalente et efficace pour déterminer le signe d'un nombre en C . Bien qu'il ne soit pas directement disponible pour les flottants dans la bibliothèque standard, son implémentation de type sécurisé permet son utilisation sur un large éventail de types de données avec une précision remarquable.
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!