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 PeterS - 10.04.2010 8:50)
Als Antwort auf Float Dateityp von Josef - 9.04.2010 22:08

> 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


    Antwort schreiben


Antworten:

Re: Float Dateityp (von Josef - 10.04.2010 18:15)