FloatToStr

  • 1
  • 2
  • Page 1 of 2
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

FloatToStr

 · 
Posted: 02.10.2018 - 02:47  ·  #1
Version: 5.09.44

Hallo,
irgendwie ist "FloatToStr" kaputt.

StX:= FloatToStr(123.456:4:2)+';';
WriteLn(SerOut, StX);

Als zweite Kommastelle kommt immer ein Punkt.
Siehe Bildausschnitt von Hterm.
Mache ich was falsch, wenn ja was?

Danke
Gruß
Mathias
Attachments
FloatToStr
Filename: FloatToStr.JPG
Filesize: 20.98 KB
Title:
Download counter: 125
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: FloatToStr

 · 
Posted: 02.10.2018 - 10:42  ·  #2
Hallo Mathias,

mir ist früher schon aufgefallen, daß bei manchen xxxToString die Zahl nach dem Doppelpunkt, den Dezimalpunkt beinhaltet bzw die Zahl vor dem Doppelpunkt die Gesamtlänge vorgibt. Mach mal 6:3 ..... 6 gesamt und 3 Nachkomma inkl. Punkt.

Harry
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: FloatToStr

 · 
Posted: 02.10.2018 - 11:55  ·  #3
Danke Harry.

Habe noch eine alte Version gefunden und installiert.
Version: 5.09.00
Mit der geht's.

Sollte mir wirklich angewöhnen, wie Gunther, immer zur geschrieben Software die benutze AVR-Version mit abzuspeichern.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: FloatToStr

 · 
Posted: 02.10.2018 - 12:42  ·  #4
Möglicherweise wurde das aber mal geändert wegen Fix64toStr, weil bei dem war es immer ohne Punkt gerechnet. Ich bin mir sicher, daß das früher inkl. Punkt war (hab mich immer gefragt, was das soll :D).

Hast du mal geschaut, ob das wirklich ein Punkt ist? Hex-Ansicht. Ich kenne Terminal-Programme, die bei nicht darstellbaren Zeichen einen Punkt machen.
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: FloatToStr

 · 
Posted: 02.10.2018 - 13:34  ·  #5
Mit der älteren Version geht's genau so wie im "AVRco Compiler-Handbuch" beschrieben.
Die neue Compilerversion baut bei "FloatToStr" Mist.
Auch im Simulator zeigt's den Mist an.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: FloatToStr

 · 
Posted: 02.10.2018 - 15:42  ·  #6
Hallo Leute,

offensichtlich hat die letzte Änderung im Float die Sache Verschlimmbessert.
Ich nehme die Änderungen jetzt zurück und werde ein neues Update generieren.
Sorry

rolf
Lschreyer
Schreiberling
Avatar
Gender: n/a
Posts: 527
Registered: 02 / 2007
Subject:

Re: FloatToStr

 · 
Posted: 26.10.2018 - 16:56  ·  #7
Ich habe auch Probleme damit, aber ganz seltsame: Ich habe ein

Write(LCDout, floattostr(-1 * (float(A) / B): 7: 2));

Das generiert normalerweise solche Strings wie -100,20
Aber alle xx male, unregelmäßig, kommt da 1 Stellen mehr hinten raus, meist steht da eine 3, 6 oder 9
Das zerschießt mir das LCD-Layout da die Strings in die nächste Zeile fließen.

Wenn ich aber das mit Umweg über einen String[7] mache geht es:

s:=floattostr(-1 * (float(A) / B): 7: 2);
Write(LCDout, s);

Ich habe die jetzt aktuelle Version 5.09.48
Mit der .44 hatte ich das nicht.


So etwas ähnliches hatte ich schon mal mit padleft und padright.
Wenn ich da

Write(LCDout, padright(s,4)); geschrieben habe kam manchmal Mist raus.

mit einem Umweg über einen String

s2:=padright(s,4)
Write(LCDout, s2);

war es dann wieder korrekt.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: FloatToStr

 · 
Posted: 26.10.2018 - 18:46  ·  #8
Hallo Louis,

ich befürchte dass da ein Stack/Frame Problem vorliegt.
Dieses erste write hat einen riesigen Frame Verbrauch.
Vermutlich hat die xx.44 da etwas anderst gemacht, aber
solche random Fehler deuten darauf hin.

btw.
man sollte solche (legale) Konstruktionen jedoch vermeiden.

rolf
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 15   140   155 · Page-Gen-Time: 0.025218s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI