Ho due applicazioni di esempio che utilizzano la stessa libreria e la differenza principale tra di loro è che si utilizza qt e l'altra applicazione è un'applicazione di console.const char * per raddoppiare il problema di traduzione con C++
Nella libreria comune, ho questo codice di prova:
double test = 0.1;
double test2 = atof("2.13134");
double test3 = atof("1,12345");
I valori se uso l'applicazione non qt sono:
test = 0.10000000000001
test2 = 2.1323399999999999998
test3 = 1 // This is the expected result using a ',' as delimitation character
Ma con l'applicazione qt:
test = 0.10000000000001
test2 = 2 // This is not expected!!!
test3 = 1.1234500000000000001
C'è qualche caso in cui il comportamento di 'atof' cambia perché qt?
Qt utilizza pre-elaborazione del codice, che potrebbe fare le cose ungood. O potrebbe esserci qualche macro in gioco. –
@ Cheersandhth.-Alf Questo sembra più un problema locale (ricordate che ',' è il carattere del punto decimale in molte locali) - forse Qt sta impostando un locale non predefinito in base alle impostazioni del sistema? – Angew
Per qualcuno dalla Germania, l'applicazione Qt è corretta. – PaulMcKenzie