Autor
|
Thema: Addition von zwei Zahlen (1054 mal gelesen)
|
Nautilius2005 Mitglied Diplomand
Beiträge: 28 Registriert: 26.03.2008 CATIA V5R16
|
erstellt am: 07. Apr. 2008 11:16 <-- editieren / zitieren --> Unities abgeben:
Hallo allerseits, meine Frage ist wahrscsheinlich sehr billig, aber ich komm einfach nicht auf die Lösung. Mein Problem: ich will zwei Zahlen, die in einem Eingabefenster eingegeben werden, zusammen addieren. '******************** GRUNDWANDSTÄRKE ********************************* Dim Dicke As String Dicke = "2,5" Dicke = InputBox ("GEBEN SIE DIE GRUNDWANDSTÄRKE DER LAUTSPRECHERBLENDE EIN.", "WANDSTÄRKE", Dicke) '******************** HÖHE ************************************************* Dim H As String H = "2" H = InputBox ("GEBEN SIE DIE HÖHE DER WABEN EIN.", "HÖHE", H) '********************************************************************************************** Wenn ich jetzt die beiden Zahlen (2,5 und 2) addiere, Hoehe = Dicke+H kommt bei mir 2,52 raus und nicht 4,5. Das Makro setzt mir die zweite Zahl hinter die erste Zahl, anstatt sie zu addieren. Muss ich dei Variablen Dicke und H vielleicht anders deklarieren?? Oder was muss ich machen? Kann mir vielleicht einer weiter helfen?
Mfg Denis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jkaestle Mitglied
Beiträge: 1091 Registriert: 08.02.2002
|
erstellt am: 07. Apr. 2008 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für Nautilius2005
Hallo, Du hast die Variablen als Zeichenkette, und nicht als Zahlen deklariert. Also werden sie auch so behandelt. Zeichenketten können nun mal nicht addiert werden. ------------------ Viele Grüße Jochen Kästle Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nautilius2005 Mitglied Diplomand
Beiträge: 28 Registriert: 26.03.2008 CATIA V5R16
|
erstellt am: 07. Apr. 2008 11:39 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Apr. 2008 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für Nautilius2005
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001
|
erstellt am: 07. Apr. 2008 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für Nautilius2005
Weil 2,5 + 2 als Strings addiert halt nun mal 2,52 sind, Texte lassen sich halt nun mal nicht multiplizieren und da wird intern der Type geändert. Sauber ist auf jeden Fall die Variablen richtig zu deklarieren und wenn man es dann ganz sauber haben will schreibt man am Anfang IMPLICIT NONE, dann muss man alles deklarieren. Axel ------------------ Inoffizielle deutsche CATIA Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jkaestle Mitglied
Beiträge: 1091 Registriert: 08.02.2002
|
erstellt am: 07. Apr. 2008 12:47 <-- editieren / zitieren --> Unities abgeben: Nur für Nautilius2005
Zitat: Original erstellt von Nautilius2005: wieso funktioniert dann eine Multiplikation von den zwei Zahlen(Dicke und H)? Und es ist egal wie die Zahlen deklariert wurden, ob String, Double, Ineger usw.?
Warum das trotzdem funktioniert musst Du die Macher der Programmiersprache fragen. Nein, es ist nicht egal ob Du das als Double, Integer,... deklarierst. Ich würde Dir empfehlen, dass Du Dir einfach mal die Infos über die verschiedenen Typen besorgst (Das Internet ist voll mit Programmier-Infos) und nachliest wo die Unterschiede sind. Dann wirst Du entscheiden können, welches der richtige Typ ist. ------------------ Viele Grüße Jochen Kästle Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jkaestle Mitglied
Beiträge: 1091 Registriert: 08.02.2002
|
erstellt am: 07. Apr. 2008 12:48 <-- editieren / zitieren --> Unities abgeben: Nur für Nautilius2005
|
Nautilius2005 Mitglied Diplomand
Beiträge: 28 Registriert: 26.03.2008 CATIA V5R16
|
erstellt am: 07. Apr. 2008 16:25 <-- editieren / zitieren --> Unities abgeben:
Dankeschön für eure schnelle Hilfe bzw Hinweise. Ich habe es nach stundenlangen Probieren rausbekommen. Die Variablen(Dicke und H) waren am Anfang als String deklariert. Mit der Zeile Dicke1 = CDbl(Dicke) übergebe ich die Variable "Dicke" vom Typ String an Variable Dicke1 vom Typ Double. Genauso mit der Variable "H". H1 = CDbl(H) Jetzt kann ich die Höhe ausrechnen. Hoehe = Dicke1+H1 Hoehe ist jetzt 4,5mm und nicht wie am Anfang 2,52. Mit freundlichen Grüßen Denis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001
|
erstellt am: 07. Apr. 2008 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für Nautilius2005
Kannst Du versuchen zu erklären warum Du jetzt Dbl nimmst ? Single geht bis 3.4 E38, das ganze in Millimeter, Du musst ja ganz schöne Dicken haben. Du brauchst aber im Speicher den doppelten Platz und länger zum Verarbeiten und genauer wird Dir das Ergebnis auch nicht. Auch wenn das Memory und die Rechenrleistung gross ist sollte man damit nicht "rumsauen". Sorry ich musste das noch loswerden, ich habe meine ersten Programme mit 32K Memory geschrieben und da hast Du jedes Bit und Byte versucht optimal auszunutzen und es ist leider heute eine allgemeine Tendenz sich darüber keine Gedanken mehr zu machen, aber jeder schreit dass die Rechner wieder mehr Memory ioder einen schnelleren Prozessor braucht. Axel ------------------
Inoffizielle deutsche CATIA Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nautilius2005 Mitglied Diplomand
Beiträge: 28 Registriert: 26.03.2008 CATIA V5R16
|
erstellt am: 07. Apr. 2008 17:00 <-- editieren / zitieren --> Unities abgeben:
Genau!!!!!!!!! So weit habe ich es garn nicht betrachtet. Du hast natürlich recht. Ich war heute schon froh als es bei mir funktioniert hatte. Ich programmiere erst seit kurzem. Anfängerfehler Aber danke für den Hinweis! Gruß
Denis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |