Ciao, ho un piccolo problema ho il seguente programma che mi stampa un double 1.025,però quando provo a stampare la parte frazionaria mi da 024999999999......però se il mio numero double e 1.125 lo stampa bene cio 125.perche? mi pottete aiutare?
Nota del Moderatore: come ben descritto in questo sticky thread, gli utenti sono tenuti a formattare appropriatamente il codice presentato, utilizzando gli appositi tag e, se del caso, un pretty printer sul sorgente prima di eseguire il copy&paste.Codice:#include <iostream> #include <cmath> using namespace std; int main() { double x=1.025; int parteintera,partefrazionaria,appoggio; double parte_appoggio; //converte la parte intera del double in intero e lo memorizza in parteintera parteintera=(int)floor(x) ; cout<<"la parte intera di x : "<<parteintera<<endl; // adesso la parte frazionaria cout<<"la parte intera senza quella frazionaria "<<parteintera<<"."<<endl ; parte_appoggio=x-floor(x); cout<<"la parte frazionaria e :"<<parte_appoggio<<endl ; cout<<"parte frazionaria prima della conversione: "<<parte_appoggio<<endl; cout<<"tentativo di estrazione e stamapa della parte frazionaria"<<endl; while(parte_appoggio!=0) { //... parte_appoggio *=10; appoggio=(int)floor(parte_appoggio); cout<<appoggio; parte_appoggio=parte_appoggio - floor(parte_appoggio); } cout<<endl; return 0; }
Per questa volta ho provveduto personalmente alla modifica: in futuro ci si attende maggiore attenzione. Grazie.



Rispondi Citando



