Heim > Backend-Entwicklung > C++ > Fehlt in C eine „round()'-Funktion und wie kann sie implementiert werden?

Fehlt in C eine „round()'-Funktion und wie kann sie implementiert werden?

Patricia Arquette
Freigeben: 2024-12-23 06:46:14
Original
888 Leute haben es durchsucht

Is C   Missing a `round()` Function, and How Can It Be Implemented?

Gleitkommarundung in C: Das Fehlen von Round()

Während Funktionen wie ceil() und floor() in verfügbar sind math.h zum Runden von Gleitkommazahlen fehlt der Standard-C-Bibliothek eine dedizierte Funktion „round()“. Dies hat zu der Frage geführt, ob Round() fehlt oder einfach unter einem anderen Namen im C 98-Standard existiert.

Implementierung einer benutzerdefinierten Round()-Funktion

Da „round()“ nicht nativ bereitgestellt wird, sind Benutzer dazu übergegangen, ihre eigenen Implementierungen zu erstellen. Eine solche Implementierung, die auf der Methode „Halb aufrunden“ basiert, ist:

double round(double d) {
  return floor(d + 0.5);
}
Nach dem Login kopieren

Es ist jedoch wichtig zu beachten, dass diese Implementierung möglicherweise nicht immer die gewünschten Ergebnisse liefert, da sie Zahlen aufrundet, die genau sind 0,5 weg von einer Ganzzahl zur nächsten geraden Ganzzahl.

Alternative Rundungsmethoden

Andere Es gibt Rundungsmethoden, wie etwa Round-to-even, das einen weniger voreingenommenen Rundungsansatz bietet und für das Runden großer Mengen bevorzugt wird.

Aufnahme in C 11

Glücklicherweise führte C 11 integrierte Round()-Funktionen ein, darunter std::round, std::lround und std::llround, die ein Standardrundungsverhalten für bereitstellen verschiedene Datentypen. Diese Funktionen bieten eine robustere und effizientere Implementierung als benutzerdefinierte Lösungen.

Das obige ist der detaillierte Inhalt vonFehlt in C eine „round()'-Funktion und wie kann sie implementiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage