Ein Bug in der Variablen 'Single'?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Ein Bug in der Variablen 'Single'?

Re: Ein Bug in der Variablen 'Single'?

von theindless » Sa, 19.05.2012 22:40

Hallo,
Das heißt demnach, daß

Code: Alles auswählen

Dim S, R As Single
'ungleich
Dim S As Single
Dim R As Single
ist?
Genau richtig!

Allerdings könntest du statt

Code: Alles auswählen

Dim S As Single
Dim R As Single
auch

Code: Alles auswählen

Dim S as Single, R as Single
schreiben

theindless

Re: Ein Bug in der Variablen 'Single'?

von gogo » Sa, 19.05.2012 16:30

Was Du da in der Msgbox siehst ist kein Single-Wert, weil das Ergebnis von S*1 zu einem Double-Wert wird. (Durch die Multiplikation mit der 1 (die wenn sie so dasteht als Integerwert gilt))

Versuch' mal das:

Code: Alles auswählen

Sub Test2
Dim S As Single
S = 8.65
S=S * 1
MsgBox S
End Sub
... und schon steht 8,65 in der Box...


Wenn Du explizit eine Rechnung mit der Single-Genauigkeit brauchst, dann sollten aber alle verwendeten Teile auch als Single deklariert sein - um Fehler zu vermeiden daher ggf. auch die 1! ... und natürlich das Ergebnis ;)

Re: Ein Bug in der Variablen 'Single'?

von theindless » Sa, 19.05.2012 15:03

Hallo,

das Problem kenne ich nicht, aber ein Hinweis von mir:

Code: Alles auswählen

Dim S, R As Single
Damit deklarierst du S NICHT als Single, sondern als Variant.

Oh... Karo war schneller

theindless

Re: Ein Bug in der Variablen 'Single'?

von Karolus » Sa, 19.05.2012 14:58

Hallo

Code: Alles auswählen

Dim S, R As Single
Hier deklarierst du nur R explizit als Single, S wird bei der Zuweisung des Werts 8.65 implizit zu Double - damit "reicht" die Genauigkeit als binärer Wert.

Ps. Warum deklarierst du erst explizit nur als Single wenn dir hinterher die Genauigkeit nicht ausreicht.

Karo

Nach oben