PDA

View Full Version : [C]Stampare double senza decimali?


MissaW_RaZ_98
18-05-2012, 19:48
Come faccio a stampare le decimali di un double SOLO quando ci sono?
Nel senso che non vorrei mi esca fuori,ad esempio,27.0000000.
Preferisco solo 27.

:help:

mx92
19-05-2012, 09:37
Prova così (non sono sicuro che funzioni)


double n;

if(n == (int)n)
printf("%d",n);
else
printf("%f",n);

lorenzo001
19-05-2012, 10:11
No mx92 ... un double può assumere valori maggiori del massimo consentito per un int (a 32 bit) e quindi avresti dei malfunzionamenti.

Io suggerirei codice di questo tipo


double value, ipart, fpart;
int nd;

value = 27.0; // Il valore da visualizzare

fpart = modf(value, &ipart);
nd = (fpart != 0.0) ? 5 : 0;

printf ("Valore: %.*f \n", nd, value);

mx92
19-05-2012, 10:13
Hai ragione non ci avevo pensato!

MissaW_RaZ_98
19-05-2012, 15:50
ie ,vedo se funziona!