Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Float Dateityp Kategorie: Programmierung C (von Josef - 10.04.2010 18:15)
Als Antwort auf Re: Float Dateityp von PeterS - 10.04.2010 8:50
Ich nutze:
C-Control Pro Mega128
> > Hallo zusammen,
> >
> > wieviel Stellen kann man mit dem Dateityp float anzeigen.
> >
> > Ich habe folgendes Problem,
> > ich kann den Dateityp float bis max 8 Stellen vordem Komma anzeigen,
> > dann ändert sich der Inhalt der Variablen.
> >
> > Hier ein Beispiel:
> >
> > #define CR 0x0D
> > //------------------------------------------------------------------------------
> > // Hauptprogramm
> > //
> > void main(void)
> > {
> >   byte cnt;
> >   float startcnt;
> >   char Str_startcnt[32];
> >   char Zeichenkette[100];
> >
> >   for (cnt=0;cnt<32;cnt++) Str_startcnt[cnt]=0;
> >   startcnt=100000003.0;
> >   Msg_WriteFloat(startcnt);
> >   Msg_WriteText(" = ");
> >   Str_Printf(Str_startcnt, "%25.0f",startcnt);
> >   Str_Copy(Zeichenkette,Str_startcnt,0);
> >   Msg_WriteFloat(startcnt);
> >   Msg_WriteText("  STRING: ");
> >   Msg_WriteText(Str_startcnt);
> >   Msg_WriteChar(CR);
> > }
> >
> > Und hier das Ergebnis:
> >
> > Interpreter gestartet - 4kb RAM                                                                                        
> > 100000000.00000 = 100000000.00000  STRING:                 100000000                                                    
> >                                                                                                                        
> > Zeit: 20ms                                                                                                              
> > Interpreter gestoppt  
> >
> > Warum wird die Variable verändert? Vielleicht kann mirjemand helfen.
> >
> > GruĂ?
> > Josef
>
> Hi Josef,
>
> 4 byte floating point (IEEE 754) Zahlen haben nur ca. 7 Stellen Genauigkeit. Das ist
> also alles richtig.
>
> Gruss Peter

Hallo Peter,

danke fĂĽr die rasche Antwort.


    Antwort schreiben


Antworten: