C koodaus juttu

Saku-foorumi » Uusi sukupolvi: MorphOS » Ohjelmointi » Viestit 2005 » C koodaus juttu « Edellinen Seuraava »

Kirjoittaja Viesti
 

JPQ
Tiistaina, 8. helmikuuta, 2005 - klo 8.44:   
Onko mitään kirjasto ja alusta riippumatonta tapaa saada luvun
desimaali osa käyttöönsä. Olen keksinyt idean jonka osaanen toteuttaa
ansi c kirjastolla mutta homman realiaikaisuus vaatimukset huomioiden
yritän löytää nopeimman tavan.
PS. softasynien on hyvä reagoida nopeasti eikö?

 

jap
Tiistaina, 8. helmikuuta, 2005 - klo 10.13:   
Miten olisi tämmöinen ratkaisu:

double fLuku; /* Tässä alkuperäinen des. luku */
double fApu;
long int lDesimaalit; /* Tähän desimaaliosa */

/* Poistetaan desimaaliluvusta vasen puoli */
fApu = fLuku - (double)(long int)fLuku;

/* Otetaan 2 desimaalia */
lDesimaalit = (long int)(fApu * 100);

Jos haet nopeutta, niin silloin kannattanee käyttää laskennassa kokonaislukuja.

 

antime
Tiistaina, 8. helmikuuta, 2005 - klo 10.43:   
Modf-kirjastofunktio osannee tehdä tuon desimaaliosan erottamisen nopeimmalla mahdollisella tavalla (jos esim. löytyy suora konekäsky).

 

itix
Tiistaina, 8. helmikuuta, 2005 - klo 10.45:   
Tai lyhyemmin fluku %= 1.0;

 

JPQ
Tiistaina, 8. helmikuuta, 2005 - klo 13.30:   
jap: eräitä asioita ei voi kokonais luvuin toteuttaa.
saakos koodisi kaikki desimaalit vai täytyykö jollain tavalla päättää se montako desimaalia taltioidaan ?
PS. täytyy ohjeitanne sulatella.

 

jap
Keskiviikkona, 9. helmikuuta, 2005 - klo 10.30:   
Pitää päättää montako desimaalia haluaa ottaa.

Kertomalla fApu:n kymmenellä saat yhden desimaalin, kertomalla 100:lla saat kaksi, kertomalla 1000:lla saat kolme desimaalia jne.

Long int:n koko asettaa rajan sille, miten monta desimaalia voit korkeintaan ottaa.

Jos huomasit, niin algoritmi ei pyöristä desimaaliosaa vaan se leikkaa numerosarjan raaasti poikki. Jos käyttää desimaaleja laskentaan, niin algoritmiltä kannattaa ottaa muutama ylimääräinen desimaali, että ei tulisi kovin suurta pyöristysvirhettä.

Antimen mainitseman modf-funktion avulla saa helpoiten ja parhaiten desimaalit, mutta jos haluaa itse tutkiskella ongelmaa, niin mikäs siinä :)

 

JPQ
Keskiviikkona, 9. helmikuuta, 2005 - klo 11.00:   
jap: ideassani pitäisi saada ns. kaikki joten menee varmaankin Modf:än käytöksi.
ps. oikein siis päättelin.

Lisää viestisi tähän
Viestisi:
Käyttäjätunnus: Postitus informaatiota:
Tämä on yksityinen keskustelupalsta. Vain rekisteröidyt käyttäjät ja moderaattorit voivat postittaa tänne.
Salasana:
valinnat: Aktivoi URL:t automaattisesti tässä viestissä
Toimenpide: