Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [PascalScript 3.0] 3 / 2 = 1 ???? (https://www.delphipraxis.net/122824-%5Bpascalscript-3-0%5D-3-2-%3D-1-a.html)

Jakob Ullmann 22. Okt 2008 16:38


[PascalScript 3.0] 3 / 2 = 1 ????
 
Hallo.

Scheinbar bekommt die PascalScript beim Rechnen von 3/2 = 1 heraus. Bei einer Double-Variable. Ich hab das so gemacht, wie es hier beschrieben steht:

der Code sieht also so aus:

Delphi-Quellcode:
      PSScript1.Script.Text :=
               'var ' +
                 'X: Double; ' +
               'begin ' +
                 'X := ' + expression + '; ' +
                 'GetResult(X); ' +
              'end. ';
Was ist da faul? Irgendwas muss ja faul sein, denn bei 3/2-1.5 als Expression kommt -1.5 heraus. :wink:

EDIT: Und bei 10/3 kommt 3 heraus. Bei 10/3.0 dagegen 3.33333 - kann man das der PascalScript nicht irgendwie abgewöhnen? Für sowas gibt es doch "div"...

mkinzler 22. Okt 2008 16:39

Re: [PascalScript 3.0] 3 / 2 = 1 ????
 
Die haben das wohl bei c abgeschaut

Marc. 22. Okt 2008 16:57

Re: [PascalScript 3.0] 3 / 2 = 1 ????
 
Crosspost.

Jakob Ullmann 22. Okt 2008 17:12

Re: [PascalScript 3.0] 3 / 2 = 1 ????
 
Ich hab das Problem jetzt gelöst, durch Zusatz von RegExpr. :mrgreen:

Delphi-Quellcode:
      RE := TRegExpr.Create;
      ...
      RE.Expression := '([0-9]*)';
      expression := RE.Replace(expression, '$1.', True);
      expression := StringReplace(expression, '..', '.', [rfReplaceAll]);
      ...
      RE.Free;
Weiß zwar nicht, wieso da dann 3.. und nicht 3. stand, aber hauptsache es funktioniert. :angel2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz