miten c kielessä saa määrättyä miten monta desimaalia se tulostaa näytölle?
en onnistu saamaan sellaista mitä tarvitaan, eli että se ei tulosta .0 lukua, mut muut desimaalit tulostaa?
esim luvut on 5.0 6.5 7.0 jne...
ja pitäisi tulostaa näin 5 6.5 7 jne...
how should i do that?
en onnistu saamaan sellaista mitä tarvitaan, eli että se ei tulosta .0 lukua, mut muut desimaalit tulostaa?
esim luvut on 5.0 6.5 7.0 jne...
ja pitäisi tulostaa näin 5 6.5 7 jne...
how should i do that?
Vastaukset 6
Vanhimmat
Ainakaan minulla std::cout kyllä jättää nollat tulostamatta.
Desimaalien määrän voi myös valita coutin precision() funktiolla.
se on joku sellanen nettisivu missä ne ohjelmat kirjotetaan ja tarkistetaan, joten en osaa sanoa...
Nettisivu C on minulle ihan uutta..
if(frac(luku) == 0)
{
tulosta((int)luku);
}
else
{
int tmp = (int)(luku * 100);
luku = (double)(tmp / 100);
tulosta(luku);
}
tosta "ehdotuksesta" en tajua mitään, tuntuu vaan ettei siinä noin monimutkaista tarvita, mut en sit tiiä...
#include
#include
int main()
{
double d[4] = {3.55, 4.0, 4.21, 5.000};
int i;
for (i = 0; i < 4; i++) {
if ( d[i] == floor(d[i]))
printf("d[%d]: %.0f\n", i, d[i]);
else
printf("d[%d]: %f\n", i, d[i]);
}
return 0;
}
Tuo on tosin C:tä eikä C++:aa.
Jos luvut muita kuin doubleja, niin käytä:
float floorf(float x);
long double floorl(long double x);