kurioser Rechenfehler??

25/10/2007 - 15:14 von Thomas Winkler | Report spam
Hi,

vorweg:

Mir ist bekannt, dass numerische Werte vom Rechner nicht beliebig genau
verarbeitet werden können, und dass aus diesem Grund gebrochene Zahlen ab
einer gewissen "Genauigkeit" Nàherungswerte darstellen.

Jetzt habe ich aber folgendes Phànomen beobachtet:

Sub foo()
Dim bar As Currency
Dim b As Currency
Dim c As Currency

bar = 1.1215

c = CCur(Fix(bar))
b = bar - c 'b = 0.1215

Debug.Print Len(b) '8 -> falsch
Debug.Print Len(CStr(b)) '6 -> richtig
End Sub

Anstatt des erwarteten, richtigen Wertes 6 liefert Len(b) = 8, obwohl keine
impliziten Typkonvertierungen stattgefunden haben und Currency nicht genauer
als 4 Stellen darstellen kann.

Woran liegt das?

MfG

Thomas
 

Lesen sie die antworten

#1 Mark Doerbandt
25/10/2007 - 15:27 | Warnen spam
Hallo, Thomas,

Thomas Winkler:

Sub foo()
Dim bar As Currency
Dim b As Currency
Dim c As Currency

bar = 1.1215

c = CCur(Fix(bar))
b = bar - c 'b = 0.1215

Debug.Print Len(b) '8 -> falsch
Debug.Print Len(CStr(b)) '6 -> richtig
End Sub

Anstatt des erwarteten, richtigen Wertes 6 liefert Len(b) = 8, obwohl keine
impliziten Typkonvertierungen stattgefunden haben und Currency nicht genauer
als 4 Stellen darstellen kann.



F1 Len

Gruss - Mark

Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen