Ich habe zwei Beispielanwendungen mit der gleichen Bibliothek und der Hauptunterschied zwischen ihnen ist, dass man qt und die andere Anwendung ist eine Konsolenanwendung.const char * zu doppelte Übersetzung Problem mit C++
In der gemeinsamen Bibliothek, ich habe diesen Test-Code:
double test = 0.1;
double test2 = atof("2.13134");
double test3 = atof("1,12345");
Die Werte, wenn ich die nicht-qt-Anwendung sind:
test = 0.10000000000001
test2 = 2.1323399999999999998
test3 = 1 // This is the expected result using a ',' as delimitation character
Aber mit der qt Anwendung:
test = 0.10000000000001
test2 = 2 // This is not expected!!!
test3 = 1.1234500000000000001
Gibt es einen Fall, in dem sich das Verhalten von 'atof' ändert, weil qt?
Qt verwendet Vorverarbeitung des Codes, die nicht gut Dinge tun können. Oder es könnte ein Makro im Spiel sein. –
@ Cheersandhth.-Alf Dies sieht eher wie ein Gebietsschema aus (denken Sie daran, dass ',' das Dezimalzeichen in vielen Gebietsschemas ist) - vielleicht setzt Qt ein nicht-standardmäßiges Gebietsschema basierend auf Systemeinstellungen? – Angew
Für jemanden aus Deutschland ist die Qt-Anwendung korrekt. – PaulMcKenzie