Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
720to724
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Berechnung in VBA

Berechnung in VBA
22.01.2006 12:27:03
Marcus
Hallo!
Folgende Frage: Wenn in VBA eine einfache Berechnung durchführe, z.B. die Fläche eine Rechtecks von a * b und ich deklariere a und b als integer und initialisiere a = 5.5 und b = 4.3, welches Ergebnis erhalte ich?
Laut dieser Prüfungsfrage (mit zugehöriger Antwort) erhalte ich das Ergebnis 20. Wenn ich diese Berechnung aber mache, kommt nicht 20, sondern 24 raus? was stimmt da jetzt? oder mache ich etwas falsch? Bin für jede Antwort dankbar!

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berechnung in VBA
22.01.2006 12:30:28
Ramses
Hallo
24 ist korrekt
Sub Check_Area_Test()
    Dim a As Integer, b As Integer
    a = 5.5
    b = 4.3
    MsgBox a * b
    MsgBox "Erklärung: " & vbCrLf & "Wert a = " & a & vbCrLf & "Wert b = " & b
End Sub

Gruss Rainer
Anzeige
AW: Berechnung in VBA
22.01.2006 12:31:19
Hajo_Zi
Hallo Marcus,
ich lehne es ab über das Internet auf fremde Rechner zu schauen. Da wäre es schon besser, wenn Du Deinen Code postest.

AW: Berechnung in VBA
22.01.2006 12:35:53
US
Hallo,
Das Ergebniss ist 23,65!!!
Solltest dein Ergebnis so formatieren, daß es zwei Stellen nach dem Komma zeigt.
Ergebnis 24 ist nichts anderes als gerundet!!
AW: Berechnung in VBA
22.01.2006 12:40:47
Matthias
Hallo US,
Darum geht es ja:
...und ich deklariere a und b als integer ...
Gruß Matthias
Etwas Verwirrung gefällig ... ;-)
22.01.2006 12:44:09
Ramses
Hallo
Ich denke diejenigen welche für die Prüfung verantwortlich sind, haben das nur in EXCEL und nicht in VBA getestet ;-)
 
 ABC
1a5.5 
2b4.3 
3   
4Fläche20 
5   
Formeln der Tabelle
B4 : =GANZZAHL(B1)*GANZZAHL(B2)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Da stehen wir wieder vor den EXCEL Limitationen :-)
Die VBA Funktion rundet eigentlich korrekt
*-------------------------------------------
Alternatives Verfahren (unverzerrte Rundung)
Das kaufmännische Runden erzeugt kleine statistische Fehler, da das Aufrunden um 0,5 vorkommt, das Abrunden um 0,5 jedoch nie. Außerdem ist das Verhalten bei positiven und negativen Zahlen unterschiedlich, wenn die zu rundende Ziffer eine 5 ist.
Daher gibt es ein alternatives Verfahren, das diese Probleme vermeidet. Es rundet bei einer letzten Ziffer 5 immer zur nächsten geraden Zahl auf oder ab. Ansonsten entspricht es dem kaufmännischen Verfahren:
* aus 2,33 wird 2,3
* aus 2,35 wird 2,4
* aus 2,45 wird 2,4
* aus 2,47 wird 2,5
* aus 2,53 wird 2,5
* aus 2,55 wird 2,6
* aus −2,35 wird −2,4
* aus −2,45 wird −2,4
------------------------------------------
Qelle: Wikipedia
http://de.wikipedia.org/wiki/Runden
Gruss Rainer
Anzeige
AW: Etwas Verwirrung gefällig ... ;-)
22.01.2006 12:54:23
Matthias
Hallo Rainer,
wenn die das wirklich mit GANZZAHL() getestet haben, sind es aber sehr schlechte Prüfer. Ganzzahl() rundet ja auch 5,9 auf 5 ab, das steht so auch in der Excel-Hilfe.
Gruß Matthias
AW: Etwas Verwirrung gefällig ... ;-)
22.01.2006 13:04:17
Ramses
Hallo Matthias
"...wenn die das wirklich mit GANZZAHL() getestet haben..."
Ich hoffe nicht, aber das wäre die einzige Erklärung ;-)
Gruss Rainer
AW: Berechnung in VBA mit DOUBLE
22.01.2006 15:25:35
Gert
Hi Ramses,
selbst wenn ich diese Aufgabe mit Bleistift erledige ist das Ergebnis
23,65 . Sollte die Variabel nicht in "Double" deklariert werden ?
Da beisst die Maus keinen Faden ab.
mfg
Gert
AW: Berechnung in VBA mit DOUBLE
22.01.2006 15:29:26
Matthias
Hallo Gert,
es geht ja um eine Prüfungsfrage, und die lautet wohl nun mal so, wie Marcus es beschrieben hat: dass es Integer-Variablen sein sollen.
Um das mathematisch richtige Ergebnis zu erhalten, braucht man natürlich den Double- oder zumindest Single-Datentyp.
Gruß Matthias
Anzeige
AW: Berechnung in VBA mit DOUBLE
22.01.2006 15:36:23
Ramses
Hallo Gert
Wie Matthias schon gesagt hat.
In der "Prüfung" ? ist INTEGER gefordert.
Das macht zwar keinen Sinn, aber was solls.
Nach dem letzten Rentenvorbescheid der BfA kann ich nur sagen:
Unsere Renten werden wohl ähnlich berechnet ;-)
Gruss Rainer
AW: Berechnung in VBA mit DOUBLE
22.01.2006 19:12:35
Gert
Hallo Rainer,Matthias und Markus,
Pisa-Studie läßt grüßen. So wird ja nie etwas aus dem Nachwuchs.
Da ich mit VBA nicht viel am Hut habe, muß ich zugeben das es mit
=GANZZAHL(A1)*GANZZAHL(B1)
das Ergebnis 20 anzeigt.
Es wird schon ein Blödsinn verzapft an unseren Schulen und Unis.
Ja und bei den Rentenbescheiden hat wohl irgendjemand noch die Funktionen
KÜRZEN und TEIL integriert.
Einen schönen Sonntagabend noch.
mfg
Gert
Anzeige
AW: Berechnung in VBA
22.01.2006 18:28:32
Marcus
Hallo,
also erstmal vielen dank für die zahlreichen antworten! haben eigentlich alle fragen beantwortet, bis auf eine...warum in der lösung 20 steht. ;-)
naja, und wegen der prüfungsfrage, die lautet wie folgt:
"Welches Ergebnis erhalten Sie bei der Berechnung einer Rechteckfläche, wenn Sie die Benutzereingaben 5,5 für Länge und 4,3 für Breite in Variablen vom Typ Integer speichern?"
AW: Berechnung in VBA
22.01.2006 18:35:11
Hajo_Zi
Hallo marcus,
warum da 20 rauskommen soll mußt Du den Prüfer Fragen. Ramses hat doch schon geschrieben das 24 rauskommt. Und falls Du es in Excel prüfst wirt Du das auch feststellen.
Gruß Hajo
Anzeige
AW: Berechnung in VBA
22.01.2006 19:15:54
Marcus
Hallo,
ja ist doch klar das ich es erst selber ausbrobiert habe, sonst wäre ich ja nicht so verunsichert gewesen...aber trotzdem danke!
AW: Berechnung in VBA
22.01.2006 19:12:33
Josef
Hallo Marcus!
Die Prüfer wollen dich auf Glatteis führen!
Wenn du a und b als Integer deklarierst, dann rechnest du nicht (5,5*4,3),
sondern (5*4), und da ist das Ergebnis nunmal 20!
Die Prüfer wollen damit Checken, ob du über die Abgedeckten Zahlenbereiche der einzelnen
Typen bescheid weist!
Gruß Sepp
AW: Berechnung in VBA
22.01.2006 19:16:51
Matthias
Hallo Sepp,
aber auf die Prüfer trifft das Sprichwort zu:
Wer andern eine Grube gräbt,...
Sub test() Dim a As Integer Dim b As Integer a = 5.5 b = 4.3 Debug.Print a, b, a * b End Sub
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige