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

Re: Fehlerhafte Werte in der Ausgabe Kategorie: IDE (von ThomasK - 21.11.2014 22:13)
Als Antwort auf Re: Fehlerhafte Werte in der Ausgabe von Max - 20.11.2014 17:10
Ich nutze:
C-Control Pro Mega128
> > > > Hallo,
> > > > Im Testlauf meines Programms ist mir aufgefallen,
> > > > dass der ausgegebene Wert mit Msg_WriteFloat
> > > > nicht mit dem tatsächlichen Wert der Variablen übereinstimmt.
> > > > Siehe Screenshot .
> > > > Grü�e Max
> > >
> > > Hallo,
> > > hier noch ein Nachtrag.
> > > Mit den Falschen Zahlen.
> > >
> > > Meine Variablen sind wie folgt deklariert:
> > > Dim arCode(60) As ULong
> > > Dim vStr(21) As Char
> > >
> > > In vStr steht zB. 92258231
> > > arCode(vZeile - 2) = Str_ReadFloat(vStr)
> > > Daraus wird in arCode 92258232
> > >
> > > Der Fehler tritt erste bei grö�eren 8stelligen Zahlen auf.
> > > Die Zahl 12728630 bereitet keine Probleme.
> > >
> > > Zum Zweiten habe ich an Stelle von
> > > Str_ReadFloat   Str_ReadNum (base=10) verwendet.
> > > Hier kommen völlig falsche Zahlen dabei raus,
> > > auch bei kleineren Zahlen.
> > >
> > > Grü�e Max
> > >
> > > PS: Es hat den Anschein als ob in diesem Forum nur einmal
> > > die Wochen ein Entwickler vorbeischaut. Schön wäre wenn
> > > wenigsten einmal kurz eine kleine Antwort kommen würde,
> > > dass man sich der Sache annimmt aber jetzt
> > > keine Zeit dafür hat.
> > >
> > > C-Control Pro AVR32
> >
> >
> > Hallo,
> >
> > unser "Software Peter" ist leider derzeit etwas verhindert und Software Interna
> > kann Ich nur begrenzt was genaues sagen...
> >
> > Kannst Du mal das ganze Testprogramm posten?
> > PS: Bei einen Neustart die Variablen immer auf einen Startwert initialisieren
> > sonst steht da "Müll" drinn...
> >
> > Grü�e Ulli
> >
> >
>
> Hallo,
> leider ist der Fehler immer noch nicht behoben.
> Wird da noch was gemacht?
> Gibt es den Software Peter noch.
>
> GruÃ? Max

Hallo Max,

Ich bin zwar nicht der "Software Peter".

Aber: Dein Problem mit den float-Zahlen wird sich nicht lösen lassen.

Die interne Darstellung der float-Zahlen erlaubt nur 7 'signifikante' Stellen.

Das heisst, dass bei allen folgenden Beispielen die '8' und die darauf folgenden Ziffern
nicht gespeichert werden können:

1234567.890
12.34567890
123456789000000
0.0001234567890

Das ergibt sich aus der Abspeicherung in 32 Bits, von denen 9 Bits für Exponent und Vorzeichen
verwendet werden.

Bei Deinen Experimenten mit Str_ReadNum() bist Du über eine andere Grenze gestolpert:

Str_ReadNum() arbeitet nur mit Word-Variablen, welche einen Wertebereich von 0 bis 65535 haben.
Wenn Du damit einen Wert >= 65536 umwandeln willst, kommt dabei nur noch Müll raus.

Gruss Thomas


    Antwort schreiben


Antworten:

Re: Fehlerhafte Werte in der Ausgabe (von Max - 23.11.2014 14:57)