RISOLTO Problema C++

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Innominato00

Nuovo Utente
Messaggi
12
Reazioni
5
Punteggio
23
fe02643d5a3cf89bc524ca1829744aa3.jpg
Vi allego qui un programma in c++.
Non riesco a capire come mai l'output è questo.
Spero qualcuno possa aiutarmi :)
 
Ultima modifica da un moderatore:
E' possibile che sia un problema di approssimazione, prova a cambiare float con double, anche se sembra veramente strano. Che compilatore usi?
 
Il programma non funziona correttamente perché c++ codifica le costanti in virgola mobile come double. Le variabili double hanno una precisione maggiore (perché i numeri in virgola mobile sono un'approsimazione a causa del modo in cui vengono rappresentati in memoria, 0.7 in realtà non è realmente 0.7 ma un numero molto vicino)rispetto alle float per cui sfalsano tutti i confronti. Quindi è necessario fare una conversione sulle costanti, e indicare al compilatore di considerarle come float e non double. Negli if, dopo le costanti inserisci una f, tipo 0.7f,0.8f per far considerare al compilatore le costanti come float.

Altro discorso se devi confrontare due variabili in virgola mobile.
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top