Ragazzi ho un problema...
Ho definito la seguente funzione
codice:
double troncaF(double x,int decimali)
{
char temp[10];
switch (decimali){
case 0: {
sprintf(temp,"%.0f",x);
return atof(temp);
};break;
case 1:{
sprintf(temp,"%.1f",x);
return atof(temp);
};break;
case 2:{
sprintf(temp,"%.2f",x);
return atof(temp);
};break;
case 3:{
sprintf(temp,"%.3f",x);
return atof(temp);
};break;
default:{
sprintf(temp,"%f",x);
return atof(temp);
};
}
//free(temp);
}
e quando vado a fare la seguente stampa
printf("PROVA = %f",troncaF(0.15,1));
mi aspetterei 0.2 ed invece visualizzo 0.1
invece se faccio
printf("PROVA = %f",troncaF(0.16,1));
visualizzo correttamente 0.2
come posso ovviare la problema???
Grazie a tutti