Eli mikä vastaa itoa, jos haluaa muuttaa double muuttujan char muuttujaksi. Ymmärsittekö =D ???
Tarvittava funktio on sprintf, joka toimii kuten printf, mutta tieto ei mene näytölle vaan merkkijonoon.
double luku = 12.345; char mjono[10]; sprintf(mjono, "%.3f", luku);
Toimii kiitos =D
Kiva, että taas jollakin toimii, mutta kannattaa miettiä vielä
* mitä tapahtuu, jos luku onkin 123456.789?
* miten korjaisit tuon ongelman?
* onko korjausehdotuksesi sama, kun luku voikin olla myös 1e234?
* mikä on desimaalierotin?
Hyviä huomautuksia, jotka olisivat kuuluneet jo minun viestiini. Funktio sprintf on vähän ikävä, kun siinä ei voi ilmoittaa merkkijonon suurinta sallittua pituutta. Jos luvun suuruudesta ei tiedetä mitään etukäteen, yksi ratkaisu olisi tutkia kokonaisosan pituutta ja esittää liian pitkät luvut kymmenen potenssien avulla (tällöin muotoiluosaan tulee merkki e eikä f).
%g
tekee joitakin kokoon liittyviä tarkistuksia automaattisesti ja valitsee noista kahdesta muodosta sopivamman.
Aihe on jo aika vanha, joten et voi enää vastata siihen.