Kuinka saisin c-kielellä tehtyä ohjelman, joka pyöristää hinnan lähimpään viiteen senttiin? Jos joku jaksaa kertoa, tai laittaa linkkiä, mistä voisin saada tietoa.. :)
senttien pyöristys
kaaleppi
91328
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 9
Vanhimmat
int pyorista(unsigned int sentit)
{
return ((sentit 2)/5)*5;
}
int main()
{
unsigned int sentit;
for (sentit=0; sentit
hinta=int()(hinta*20 0.5)/20;
;-)
Ja mikä on käytännön vaikutus jos esim. kassakoneen vasteaika pitenisikin vaikka millisekunnin?
ja käytännön merkitys selviää käytännössä... eli siinä mihin/miten tuota koodia käytetään.
>perustelu on selvä
En vielä tuosta oikein ymmärtänyt mitä tahdoit sanoa. Voisitko kertoa vähän yksityiskohtaisemmin ?
ellei kääntäjä osaa tuota optimoida, ja kaikki ei osaa. Muutenhan kaavasi oli olennaisesti sama kuin minun.
>...kaavasi oli olennaisesti sama kuin minun
Kyllä, periaate on sama mutta hinta on yleensä aina liukuluku josta sinun ratkaisussa pitää ensin erottaa siitä sentit intiksi ja ottaa huomioon tapaus jossa sentit onkin 98..99 jolloin katkaistun liukuluvun kokonaisosaa pitää muuttaa ja kaikissa tapauksissa pyöristetyt sentit täytyy liittää takaisin hinnan kokonaisosaan jos tulosta käytetään jatkolaskennassa (tilitys,varastokirjanpito jne) eikä pelkästää näytössä.
Eli kyllä noihinkin palaa prosessorin aikaa jonkin verran.
Ei sillä että tässä tapauksessa olisi mitään väliä mutta pikkuasioista on niin jännä kinata. :)
millisekunti on pitkä aika. Ehkä jos liukuluvut pitää emuloida ja laskenta tapahtuu mikrokontrollerilla niin sitten...
hmm... kuullostaa kassakoneelta. ehkä siinä on ideaakin.