Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Ajanotosta ylimääräiset nollat pois

tuomas11 [30.06.2008 12:22:44]

#

Eli tällä hetkellä ajanottokello antaa lukuja 1.0000, 2.0000... Kuinka saisin nuo nollat lopusta pois? Ajanotto tapahtuu näin:

laskenta_aika = (SDL_GetTicks()-aloitusaika)/1000;

User137 [30.06.2008 12:48:46]

#

Ongelma ei ole muuttujassa vaan kuinka tulostat sen?

Metabolix [30.06.2008 12:58:31]

#

/* C   */ printf("%.2f\n", 12.4567); // "12.46"
/* C++ */ cout << fixed << setprecision(2) << 12.4567 << endl; // "12.46"

Ehkäpä haluat myös laskea liukuluvuilla, jotta saisit muutakin kuin kokonaislukuja?

aika = (jotain) / 1000.0; // Huomaa .0, joka muuttaa luvun liukuluvuksi!

tuomas11 [30.06.2008 13:30:08]

#

Kiitos, nyt toimii. Ja jos joku muu joskus ihmettelee samaa, niin minulla se toimii näin:

printf(" Aikaa kulunut: %.0f", laskenta_aika);

Metabolix [30.06.2008 14:15:56]

#

Jos kerran haluat tuloksen kuitenkin kokonaislukuna, voisit saman tien muuttaa tuon laskenta_aika-muuttujan tyypiksi int ja tulostaa sen %d-muotoilulla eli kokonaislukuna.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta