 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4769 Aktiv.: 20.13 Kraj: Kobarid
|
Objavljeno: Sre Jan 31, 2007 9:23 pm Naslov sporočila: Racunska napaka ???? |
|
|
Hmm to mi pa nikakor ni vsec! Ko pozenem spodnji programcek mi namesto cistega pristevka 1 vsake toliko casa doda ali odbije kaksno decimalko. Npr. izpis na zaslonu trenutno je 120.011963 namesto 120.012000. Zna kdo pojasniti, kje nastane napaka? Zna biti zelo nadlezno pri kaksnih izracunih No vsaj upam, da gre samo za napako pri izpisu (sprintf) in ne v neznaki...
Koda: |
int main (void) {
float ab;
char datum[] = "31 januar 2006";
char izpis[16];
lcd_init();
ab = 0.012;
while (1) {
lcd_1_line();
ab ++;
sprintf(izpis,"%f",ab);
lcd_print(izpis);
lcd_2_line();
lcd_print(datum);
udelay(1500);
}
} |
_________________ Lep dan
Simon |
|
Nazaj na vrh |
|
 |
Djurodrljaca Član

Pridružen-a: Pet 19 Dec 2003 16:31 Prispevkov: 393 Aktiv.: 1.66 Kraj: Mengeš
|
Objavljeno: Sre Jan 31, 2007 9:29 pm Naslov sporočila: |
|
|
Problem je v tem, ker uporabljaš float. Pretvorba iz desetiškega zapisa števila v "floating point" zapis števila ni čisto točen, ampak si omejen z minimalnim številom, ki ga lahko prikažeš oz z njim računaš. Če hočeš boljšo natančnost uporabi double, ker ima zapis na 15 decimalnih mest točen, float pa je točen samo na 7 decimalnih mest. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.56
|
Objavljeno: Sre Jan 31, 2007 9:32 pm Naslov sporočila: |
|
|
Stevilski tipi ne-celih (sploh iracionalnih) stevil so v racunalniku z omejenim obsegom prostora za dolocen stevilski tip ponazorjeni priblizno; bolj kot rines v majhne decimalke, bolj je vrednost nenatancna. Ce zelis vecjo natancnost, uporabi drugacen tip ali stevilo predstavi drugace - v obeh primerih zagotovi dovolj prostora za celoten obseg tvojega stevilskega tipa. V takih primerih ponavadi tudi uporabis vnaprej doloceno mesto decimalne pike ("fixed point"). _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70800.82
|
Objavljeno: Sre Jan 31, 2007 10:33 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|