Gibt es eine Standardzeichenfunktion in C/C?
Frage:
I Ich suche eine Funktion, die -1 für negative Zahlen und 1 für positive Zahlen ausgibt. Trotz ihrer Einfachheit vermute ich, dass diese Funktionalität irgendwo in einer Standardbibliothek verfügbar ist. Konkret benötige ich eine Funktion, die mit Float-Datentypen arbeitet.
Antwort:
Ja, es gibt eine Standard-C-Funktion, die diesem Zweck dient, bekannt als Signum. Es ist jedoch wichtig zu beachten, dass diese Funktion typsicher ist, was bedeutet, dass sie mit verschiedenen Datentypen arbeiten kann, nicht nur mit Floats. Hier ist eine generische Implementierung von Signum:
template <typename T> int sgn(T val) { return (T(0) < val) - (val < T(0)); }
Diese Funktion bietet mehrere Vorteile gegenüber benutzerdefinierten Implementierungen:
Verwendung:
int sign = sgn(-1.5); // -1 sign = sgn(0.0); // 0 sign = sgn(3.14); // 1
Vorbehalte:
Zusammenfassend lässt sich sagen, dass die Signum-Funktion eine vielseitige und effiziente Lösung zum Bestimmen des Vorzeichens einer Zahl in C bietet. Obwohl es für Floats in der Standardbibliothek möglicherweise nicht direkt verfügbar ist, ermöglicht seine typsichere Implementierung die Verwendung auf einer Vielzahl von Datentypen mit bemerkenswerter Genauigkeit.
Das obige ist der detaillierte Inhalt vonVerfügt C/C über eine Standardvorzeichenfunktion für Gleitkommazahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!