vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2021
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Exp(x) funktioniert nicht 
Autor: D_Old
Datum: 15.04.21 13:28

Hallo, ich habe ein Probleme mit der Exponentialfunktion Exp(x).
In einer App habe ich einen Verweis auf Microsoft Script Control 1.0 gesetzt. Diverse Funktionen habe ich ohne Probleme ausführen lassen. Es gab bisher nur bei der Exponentialfunktion Exp(x) einen Fehler. Als Fehler wurde mit Err.Number 1002 ein Syntaxfehler gemeldet.
Woran kann das liegen?

Für eure Hilfe vielen Dank!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exp(x) funktioniert nicht 
Autor: Souffleurlos
Datum: 18.04.21 14:46

Hallo,

ich habe ein Problem mit der Funktion: Exp(x) ?

Wenn x ein nummerischer Wert ist, dürfte es keine geben, besonders keinen Error mit dem Wert 1002.

Dem zarten Hinweis, dass du einen Verweis auf das Script Control 1.0 gesetzt hast, dem bin ich gefolgt. Zu dem Hinwweis fehlt aber Code.

Den habe ich mir jetzt aus den Fingern gesaugt und ergänze es mal so:

Dim objScript As New ScriptControl
Dim X AS Integer
 
objScript.Language = "VBScript"
 
 x = 22
 Debug.Print obj.Eval("Exp(" & Str(x) & ")")
Ergebnis = 3584912846,13159

Auch kein Fehler.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exp(x) funktioniert nicht 
Autor: Rippler
Datum: 18.04.21 17:46

    Debug.Print Exp(709)
    'der Code läuft einwandfrei
    'mit gesetztem Verweis
 
    'Exp ist ein double
 
    'allerdings darf der Wert
    '709,782712893 nicht
    'überschreiten
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exp(x) funktioniert nicht 
Autor: D_Old
Datum: 18.04.21 18:51

Vielen Dank für eure schnelle Antwort!

Natürlich funktioniert der Befehl einwandfrei! Ein total idiotischer Fehler hat sich bei mir eingeschlichen, und ich hatte wohl Pellkartoffeln auf den Augen...

Eine Gleichung, die in eine Textbox eingegeben wird, soll numerisch gelöst werden. Als Variable ist dabei x zu verwenden, und das war das Problem: Bevor der Formelstring verarbeitet wird, muss die Variable x durch konkrete numerische Werte aus dem jeweiligen Wertebereich ersetzt werden. Dazu wird der Befehl "Replace" verwandelt. Und Replace verwandelt nun leider auch das x im Exp-Befehl in die jeweilige Zahl.
So wird z.B. bei x = 5 aus dem String "sin(x)" sin(5), und das funktioniert natürlich.
Aber aus dem String "Exp(x)" wir leider E5p(5), und das kann natürlich nicht funktionieren!

Aber dennoch: Vielen Dank für eure Hilfe!
Nachdem ich nachvollzogen habe, was ihr mir mitgeteilt habt, bin ich dann auf diesen idiotischen Bug gestoßen...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2021 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel