Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   MatheParser - Kommazahlen/1E-6 (https://www.delphipraxis.net/128839-matheparser-kommazahlen-1e-6-a.html)

TM. 7. Feb 2009 08:09


MatheParser - Kommazahlen/1E-6
 
Hallo,

Ich habe mir nun einen Matheparser für Funktionen geschrieben, jedoch gibt es ein Problem, bei dem ich gerade nicht weiterkomme:

Meine Schleife in der Funktion wird 5x durchlaufen, einmal für jeden Rechenoperator (^, *, /, +, -). Als erstes wird geprüft, ob das Zeichen im String vorkommt, wenn ja, wird die Zahl vor dem Rechenoperator sowie die danach jeweils mit Vorzeichen übernommen, und die beiden dementsprechend verrechnet.
Wenn ich aber bei der Y-Asymptotenberechnung für X eine sehr hohe Zahl einsetze, und beispielsweise solch eine Gleichung vorliegen habe:
'1/x+2'
wird nun als erstes, da kein '^' oder '*' im String ist, dividiert. Wenn X aber sehr hoch ist, wird mir keine Kommazahl ausgegeben, sondern etwas wie '1E-6'. Mit diesem String aber wird die Zahl 2 falsch addiert, eigentlich würde die Zahl 2.000001 zurückgegeben werden, da aber nun der Rechenoperator '+' die Zahl vor dem Rechenzeichen (-6) mit der danach (2) addiert, ist das Ergebnis '1E-3'.

Gibt es eine Möglichkeit, die Rückgabe einer langen Kommazahl sich auch als Kommazahl anzeigen zu lassen?

himitsu 7. Feb 2009 08:19

Re: MatheParser - Kommazahlen/1E-6
 
Delphi-Referenz durchsuchenFormat, Delphi-Referenz durchsuchenFloatToStrF, Delphi-Referenz durchsuchenFloatToTextFmt usw.
geht aber auch nur innerhalb gewisser Grenzen ... bei viel zu kleinen/großen Zahlen würde das Ergenis nicht stimmen (zu stark gerundet) oder es würde wiederrum dieses für dich so unschöne Format verwendet)

TM. 7. Feb 2009 08:30

Re: MatheParser - Kommazahlen/1E-6
 
Vielen Dank,

FloatToStrF hat funktioniert, und die Asymptotenberechnung geht nun auch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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