Runden/Datentypen
09.12.2008 18:02:56
Larass
bei Google ist ja zum Thema runden jede Menge zu finden. Leider habe ich mein Problem damit nicht gelöst.
Ich möchte eine Auflagegerkraft bestimmen und diese auf zwei Stellen gerundet in eine Excel-Zelle schreiben.
Hier mein code dazu:
Sub Auflagerkraft()
Dim A As Single, l As Single, F As Single, LagerA As Single, Lager As Single, Kraft As _
Single
Dim Zielfeld As String
A = CSng(InputBox("Abstand der Kraft F zum Auflager:", "Abstand a", "Dezimalzahl"))
l = CSng(InputBox("Länge des Balkens:", " Länge l", "Dezimalzahl"))
F = CSng(InputBox("Betrag der Kraft F:", "Kraft F", "Dezimalzahl"))
Zielfeld = InputBox("In welche Zelle soll der Wert geschrieben werden:", "Zielzelle", "Zelle" _
)
Lager = Auf(A, l, F)
Kraft = Application.WorksheetFunction.Round(Lager, 2)
ActiveSheet.Range(Zielfeld).Value = Kraft
End Sub
Function Auf(A As Single, l As Single, F As Single) As Single
Auf = F * (1 - A / l)
End Function
Ich habe es sowohl mit der Excelfunktion (s.o.) als auch mit vorangestellter round-Funktion:
Function Round(ByVal Number As Double, ByVal digits As Integer) As Double
Round = Int(Number * 10 ^ digits + 0.5) / 10 ^ digits
End Function
versucht.
In der Zelle landet in beiden Fällen: 1.39999997615814 (bei a=0,3, l=1, F=2)
Kann mir bitte jemand sagen wo das Problem liegt?