Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Textfeld als double einlesen, geschieht das automatisch ?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Textfeld als double einlesen, geschieht das automatisch ? (2593 mal gelesen)
Mario Wipf
Mitglied
Dipl. Ing. FH, MAS FHO BAE


Sehen Sie sich das Profil von Mario Wipf an!   Senden Sie eine Private Message an Mario Wipf  Schreiben Sie einen Gästebucheintrag für Mario Wipf

Beiträge: 535
Registriert: 07.10.2003

AIS 9 SP3, AIS 10 WINDOWS XP Pro
Fujitsu Siemens CELSIUS M430
Nvidia Quadro FX 1400 128 MB

erstellt am: 20. Jul. 2005 07:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


0001.jpg


0002.jpg


0003.txt

 
Hall allerseits !!

Ich habe schon fast ein schlechtes Gewissen, dass ich im Moment der einzige bin der Fragen hat...ist echt den anderen alles klar ? :-)

Folgendes:

Ich habe ein kleines Beispiel gemacht, um mich ein wenig in VBA zu üben. Ziel dieser Übung ist es, aus einer bestehenden Excel-Tabelle drei Preise zu übernehmen (auslesen), mit der alten Marche zu multiplizieren und dann durch eine neue Marche zu dividieren, so dass neue Preise ausgegeben werden. Das ganze sieht aus wie in Bild 0002.

Problem ist nun, wenn die Nachkommastellenbehafteten eingelesenen Werte weiter verrechnet werden, dann sehe ich in der Ausgabe "berechnung_click()" dass mir da bei den Resultaten falsche Nachkommastellen ausgegeben werden.

Frage, "Merkt" VBA selber, dass ich den eingelesenen String als double weiterverwenden möchte und wenn nein, wie sage ich ihm das ?

Und wenn er das selber merken sollte, bzw. als Standard definiert ist, woher kommen dann die falschen Nachkommastellen ?

Gruss Mario

P.S. Datei 0001 → Screenshot aus Entwicklungsumgebung
     Datei 0002 → Screenshot der Oberfläche
     Datei 0003 → Quellcode
    

[Diese Nachricht wurde von Mario Wipf am 20. Jul. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Grebe
Mitglied



Sehen Sie sich das Profil von Grebe an!   Senden Sie eine Private Message an Grebe  Schreiben Sie einen Gästebucheintrag für Grebe

Beiträge: 536
Registriert: 16.12.2002

erstellt am: 20. Jul. 2005 09:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Mario Wipf 10 Unities + Antwort hilfreich

Ich denke nicht, dass du der Einzige mit Problemen bist - aber es gibt halt auch noch andere Foren ...
Zunächst solltest du einmal klären, woher der Fehler kommt. Wie genau die VAL-Funktion arbeitet weiß ich jetzt nicht, du könntest dir aber jeweils nach dem Einlesen eines Werte z.B. den Text und den umgewandelten Wert ausgeben lassen und diese miteinander vergleichen.
Wenn diese übereinstimmen, liegt's schon mal nicht an der VAL-Funktion.
Grundsätzlich ist jedoch anzumerken, dass aufgrund der rechnerinternen Zahlendarstellung gewisse Zahlen einfach nicht genau darstellbar sind. Dies betrifft vor Allem auch für uns ganz normal erscheinende Zahlen wie z.B. 0.5 (oder ähnliche, Nagel mich da nicht fest, es liegt halt daran, dass die Zahlen zur Basis 2 abgebildet werden).
Somit scheint dann der Rechner bei einigen Zahlen "falsch" zu rechnen. Als Beispiel: In A1 1 eingeben; in A2 =A1-0,1; dann A2 runterzählen und staunen was rauskommt ...
Wenn du in Excel im Tabellenblatt auf die selben Ergebnisse kommst wie in VBA, dies aber z.B. nicht mit den Taschenrechnerergebnissen übereinstimmt kannst du halt nichts dran ändern.
So jetzt gibt's viel zu Probieren - bis später !
Mathias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mario Wipf
Mitglied
Dipl. Ing. FH, MAS FHO BAE


Sehen Sie sich das Profil von Mario Wipf an!   Senden Sie eine Private Message an Mario Wipf  Schreiben Sie einen Gästebucheintrag für Mario Wipf

Beiträge: 535
Registriert: 07.10.2003

AIS 9 SP3, AIS 10 WINDOWS XP Pro
Fujitsu Siemens CELSIUS M430
Nvidia Quadro FX 1400 128 MB

erstellt am: 20. Jul. 2005 09:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Mathias !

Danke für die Info, dann muss ich wohl wirklich ein wenig testen.

Was ich mitlerweilen herausgefunden habe ist, dass irgendwo zwischen übernehmen aus Excel-sheet und auslesen in Textfelder die nachkommastellen verloren gehen und daher vermutlich dann auch die Fehler im Endergebnis stammen.

Dann mach ich mich gleich mal auf die Suche

hmmm das mit dem runterzählen ist besonders im Bereich von der theoretischen Null ganz interessant :-) ist vieleicht Noll doch nicht gleic Null :-)

Gruss Mario

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 20. Jul. 2005 17:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Mario Wipf 10 Unities + Antwort hilfreich

hmm,

Schaue mal in der Onlinehilfe bei der Funktion Val nach ;-) mir scheint du hast in deiner Sheet Komma-Zahlen vorliegen?

Code:

Sub tt()
Dim a, b, c As Double
a = 0.987654321   'ergebnis lokales-Fenster 0,987654321
b = Val(a) 'ergebnis lokales-Fenster 0
c = CDbl(a) 'ergebnis lokales-Fenster 0,987654321
gg = c*5 'ergebnis  : gg : 4,938271605 : Variant/Double

'alternativ
a = ".987654321bla"
b = Val(a) 'ergebnis lokales-Fenster 0,987654321
f = b*5    'ergebnis: f : 4,938271605 : Variant/Double
c = CDbl(a) 'ergebnis error ;-)
d = Cstr(a) 'ergebnis als String
End Sub


Aus der Hilfe:
Anmerkung Die Val-Funktion erkennt nur den Punkt (.) als gültiges Dezimalzeichen. Wenn Sie ein anderes Dezimalzeichen verwenden möchten (zum Beispiel bei internationalen Anwendungen), sollten Sie statt dessen die Funktion CDbl verwenden, um eine Zeichenfolge in eine Zahl umzuwandeln.

[Diese Nachricht wurde von Thomas Harmening am 20. Jul. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mario Wipf
Mitglied
Dipl. Ing. FH, MAS FHO BAE


Sehen Sie sich das Profil von Mario Wipf an!   Senden Sie eine Private Message an Mario Wipf  Schreiben Sie einen Gästebucheintrag für Mario Wipf

Beiträge: 535
Registriert: 07.10.2003

AIS 9 SP3, AIS 10 WINDOWS XP Pro
Fujitsu Siemens CELSIUS M430
Nvidia Quadro FX 1400 128 MB

erstellt am: 21. Jul. 2005 08:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo !!

Das mit den verflixten Komas habe ich auch gemekrt, aber ich hatte noch keinen Ansatz um das Problem in Angriff zu nehmen.

Vielen Dank für Deine Tips !! ich habe es mal so auf die schnelle probiert und noch nicht hingekriegt, aber in einer ruhigen Minute werde ich mir das noch einmal alles anschauen :-)

Gruss Mario

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz