Törmäsin yllättäen näinkin yksinkertaiseen ongelmaan: Tulostaessani double-muotoista desimaalilukua tyyliin
cout << luku << endl;
tulostaa ohjelma ruudulle vain 0. Sinänsä ymmärrettävää, tulostettava luku on 0,5
Ratkaisumalleja?
tohon desim juttuun voinee auttaa
cout.setf(ios::fixed); ei näytä kiintolukuna
cout.precision(2); kahdel desimaalilla
tai
cout.precision(1); yhdel desim
Ootko määritelly tuon luku muuttujan double luku;? Vaikuttaa siltä, että se on int luku;.
Kyllä se on ihan double
lainaus:
tohon desim juttuun voinee auttaa
cout.setf(ios::fixed); ei näytä kiintolukunacout.precision(2); kahdel desimaalilla
tai
cout.precision(1); yhdel desim
En saanut toimimaan. Syy lienee ehkäpä siinä, että käytän moista tyyliin cout.precision(2) << luku << endl;
kokeile laittaa cout.precision(2); omana lauseenaan, ennen sitä luvun syöttöä jo.
jaa tarviikoha kans tuon nimiavaruuden sitte (et kyllä erroreista valitellu yhtikäs)
using namespace std;
Taitaa onnistua:
printf("Luku on %f", luku);
Mukaan pitää tällöin ottaa se stdio.h
...ja onnistuuhan se! :)
ai printf ja protsentti f (eli c-kieltä)
eiks tuu silloin: %.1lf :llä? kato yhd. desimaalilla.
siis ykkösen jälkeen on äl-kirjain tossa ylläällä!
(ps. mä oon hiema ehkä liikaa doublesoitunut viimeaikoina!!)
Aihe on jo aika vanha, joten et voi enää vastata siihen.