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