double to float cast
-
Ich habe in meinem Programm seeeeeeeeeeehr viele Warnings, weil ich implizit doubles in float konvertiere:
Warnung 5 warning C4244: 'Argument': Konvertierung von 'double' in 'FLOAT', möglicher Datenverlust e:\programmieren\sdd.cpp 74
Diese Warnings nerven ziemlich. Soll ich jetzt überall static_cast<float> einbauen? Oder kostet das Performance?
-
Kostet keine Performance. Macht der Kompiler sowieso implizit, wenn dus nicht angibts. Und ja, schön überall hinschreiben! oder gleich kompatible Typenverwenden. Du rechnest erst mit double, um dann die Genauigkeit bei Übergabe an eine Funktion wieder zu verlieren?
Gruß
Don06
-
Don06 schrieb:
Du rechnest erst mit double, um dann die Genauigkeit bei Übergabe an eine Funktion wieder zu verlieren?
Ja. Aber dagegen kann ich ja nix machen. Ich rechne erst mit doubles rum und am Ende weise ich sie Elemente einer Klasse zu, die float sind.
-
gibt es irgendeinen sinnvollen grund, warum das floats und keine doubles sind? oder kannst du die klasse nicht ändern?
-
Das sind fertige Klassen, die ich nicht ändern kann. Blöde Sache sowas

-
Dann rechne doch mit floats rum.
MfG
-
Hi,
wenn das Alles nicht geht, kannst Du natürlich auch die Umwandlung kapseln und "auslagern".
// eigentlicher_Code.cpp float double2float(double); int main() { // ... double ergebnis = meine_wilde_Berechnung_mit_double(); // Zuweisung an float FremdKlassenObjekt.float_member = double2float(ergebnis); //...// double2float.cpp float double2float(double d) { return static_cast<float>(d); }Damit hast Du die Warning nur beim (einmaligen) Compilelauf von double2float.cpp - und selbst da kann man einzelne Warnings bei vielen Compilern ausschalten.
Gruß,
Simon2.