Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: desimaaliluvun tarkistus

Kytsi [29.04.2004 11:45:14]

#

Oli ongelmanani on se että pitäisi tarkistaa onko syötetty luku desimaali luku. muussa tapauksessa tulisi virheilmoitus ja pyydettäisiin syöttämään uusi luku. eli tämä siinä tapauksessa jos sylte jätettäisiin tyhjäksi tai syötteessä olisi kirjaimua tai muuta.

niin ja tämä nimenomaan C:llä

Dual [29.04.2004 14:17:18]

#

Otat syötteen merkkijonona. Sitten etsit jollakin keinolla pisteen/pilkun ja luet sen vasemmalta puolelta kokonaislukuosan ja oikealta puolelta desimaaliosan. Muunnat merkkijonon osat vaikka atoi():lla kunnollisiksi luvuiksi. Tämän jälkeen vain yhdistät jotenkin fiksusti kokonaisluku- ja desimaaliosan. Tai jotenkin näin...;)

Markus [30.04.2004 09:46:13]

#

Lue float tyyppinen arvo.
Jos (int)luku==luku, niin kyseessa oli kokonaisluku.
Siis jos 1234.00000:kin tulkitaan kokonaisluvuksi.

thefox [30.04.2004 10:48:20]

#

Halusiko kysyjä lukea flotareita vai kokonaislukuja? Jos kokonaislukuja, niin on sangen helppoa tarkistella onko siellä merkkejä jotka eivät kuulu validille arvoalueelle '0' - '9'. Lisäksi voisit tarkistaa, onko ensimmäinen merkki '-' jolloin syöttö olisi myöskin validi. Ennen tarkastelua merkkijono kannattaa 'trimmata', eli poistaa siitä ylimääräiset välit alusta ja lopusta.

hunajavohveli [02.05.2004 14:31:20]

#

Itse tein tämän QB:llä niin, että otin INT-funktiolla luvusta kokonaisluvun ja vertasin sitä alkuperäiseen. Jos nämä täsmäsivät, luvun oli pakko olla kokonaisluku, koska INT-funktio aiheuttaisi muutoksen ainoastaand desimaaliluvuissa. En vain tiedä C:lle vastaavia funktioita.
Edit: Äh, Markuksellahan oli ihan sama keino. En jotenkin hahmottanut.

Vastaus

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

Tietoa sivustosta