Ciao a tutti,
posto un semplice programmino per calcolare,partendo da"t=0",i valori di "t" via via che gli somma sempre la stessa quantita "dt" fornita da me in ingresso da tastiera fino a un certo valore anch'esso da tastiera.
#include <iostream>
#include <iomanip>
typedef double DB;
using namespace std;
int main() {
DB t,dt,tmax;
t=0;
cout<<"dammi dt: "<<endl;
cin>>dt;
cout<<"dimmi ora l'istante di tempo in cui fermare il conteggio"<<endl;
cin>>tmax;
cout<<setw(10)<<"t"<<setw(10)<<"dt"<<endl;
while (t<tmax){
t = t+dt;
cout<<setw(10)<<t<<setw(10)<<dt<<endl;
}
}
.
Nel caso in cui si scelga "dt=0.05" e "tmax=15" accade che fino all'istante "t=6" tutto ok cioè t viene aumentato progressivamente di 0.05. Oltre il 6.05 però anzichè passare a 6.10 passa invece a 6.10001 poi 6.15001 poi ancora 6.20001 ecc ecc per tanti conteggi.Se scelgo invece precisione "double" il problema non si verifica più. Qualcuno saprebbe dirmi cosa succede di preciso?