FloatToStr(f:n:n) problem

  • 1
  • 2
  • Seite 1 von 2
allan
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 11
Dabei seit: 10 / 2016
Betreff:

FloatToStr(f:n:n) problem

 · 
Gepostet: 04.10.2017 - 16:50 Uhr  ·  #1
Hi,
With new compiler (5.09.18) any attempt to convert float to string causes crash!
This does not work any more, even in simulator:

Float1 := 0.1001;
Float2 := 2.0002;
st := FloatToStr(Float1:6:4) + ' ' + FloatToStr(Float2:6:4);
Gunter
Administrator
Avatar
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: FloatToStr(f:n:n) problem

 · 
Gepostet: 04.10.2017 - 23:20 Uhr  ·  #2
allan
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 11
Dabei seit: 10 / 2016
Betreff:

Re: FloatToStr(f:n:n) problem

 · 
Gepostet: 05.10.2017 - 13:04 Uhr  ·  #3
OK, understood, but this is so easy to reproduce, just copy-paste these 3 lines and try.
Something bad happened to floating point numbers while I did not update (since 2012).

Code

program avrprommer;

{$NOSHADOW}

{ $W+ Warnings}            {Warnings off}

Device = mega64, VCC=3.3;

Import SysTick, WatchDog;

From System Import  Float;

Define
        ProcClock   = 6000000;

        SysTick     = 10;            {msec}
        StackSize   = $0040, iData;
        FrameSize   = $0040, iData;
        
        WatchDog       = msec2000;



Implementation


{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }

type

{--------------------------------------------------------------}
{ Const Declarations }


{$EEPROM}
{--------------------------------------------------------------}

Structconst



{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}

Var

        st             : string[16];
        Float1, Float2 : float;

const


{--------------------------------------------------------------}
{ functions }




{ Main Program }
{$IDATA}

begin

  // ----- DEBUG  ----
  Float1 := 0.1001;
  Float2 := 2.0002;
  st := FloatToStr(Float1:6:4)  + '  ' + FloatToStr(Float2:6:4);

  
end avrprommer.

Gunter
Administrator
Avatar
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: FloatToStr(f:n:n) problem

 · 
Gepostet: 05.10.2017 - 14:33 Uhr  ·  #4
Hi.

I found no problem with 5.09.18

Gunter
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: FloatToStr(f:n:n) problem

 · 
Gepostet: 05.10.2017 - 15:18 Uhr  ·  #5
Allan, Gunter,

I also checked this example

rolf
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
allan
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 11
Dabei seit: 10 / 2016
Betreff:

Re: FloatToStr(f:n:n) problem

 · 
Gepostet: 05.10.2017 - 17:37 Uhr  ·  #6
I see - if you just 'Make' it works, but 'Make & Optimize' was what I did...
So it must be optimizer related problem.
Gunter
Administrator
Avatar
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: FloatToStr(f:n:n) problem

 · 
Gepostet: 05.10.2017 - 17:53 Uhr  ·  #7
yes you are right !
Optimize creates an endless loop.

Merlin ?

Edit:
the problem is the optimisation of the FloatToStr function !
even "st := FloatToStr (1);" creates a loop.
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: FloatToStr(f:n:n) problem

 · 
Gepostet: 05.10.2017 - 18:56 Uhr  ·  #8
Hello Allan,

without complete environment and other infos we can't
evaluate such problems.
As always:
doesn't work ... doesn't help

rolf
  • 1
  • 2
  • Seite 1 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   141   155 · Page-Gen-Time: 0.026264s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI