Ausgehend von diesem Ausgangspunkt:
%Vor%Gibt es einen signifikanten Unterschied in C ++ zwischen:
%Vor%und
%Vor%Welche sollte ich bevorzugen? Wenn jemand anderes (einschließlich meines zukünftigen Selbst :)) meinen Code liest, sieht es für mich mit der Sekunde aus, dass es expliziter ist, dass ich genau weiß, was ich tue, aber es erfordert eine Bibliothekseinbindung.
Referenz: Gibt es in C ++ eine Abschneidefunktion?
Wenn Sie static_cast<int>(y)
verwenden, erhalten Sie alle Vorteile, die Sie suchen:
die Gründe, warum ich trunc()
trunc()
gibt kein int. Ich kann mir eine oder zwei Situationen vorstellen, in denen ich den Bruchteil loswerden möchte, aber ich möchte immer noch, dass die Variable den Typ float
hat, aus verschiedenen Gründen möchte ich die Operation x + 0.1f
speichern Bruchteil.
also hätte ich immer noch Zweifel an deinen Absichten, vielleicht meintest du nicht die implizite Umwandlung.
ODER Sie können einfach einen kleinen Kommentar daneben setzen int x = y; // yes, I know what I'm doing
.
Dies wird auch die Klarheit geben, die Sie brauchen.
IMO sollten Sie nicht. Das Abschneiden ist eine Funktion, die für Fließkommatypen definiert ist. Es ändert den Typ nicht in einen ganzzahligen Typ.
int x = y;
Hier sagen Sie, dass Sie einer int-Variablen etwas zuweisen
int x = trunc(y);
Hier sagen Sie, dass Sie den Bruchteilteil aus welchem Grund auch immer löschen und dann
Die Anwendungsfälle sind meiner Meinung nach ziemlich unterschiedlich.
Warum sollte ich die Verwendung von trunc
vor der Konvertierung ablehnen? Wahrscheinlich Präferenz, für mich ist die Art der Verschleierung tatsächlich in solchen Anwendungsfällen.
Tags und Links c++