AW: Single in Integer und wieder zurück
01.08.2008 21:10:09
Erich
Hallo Metin,
die wichtigste Frage:
Soll in der Zelle der gerundete Wert stehen, also 123,5 ?
Oder soll in der Zelle der Wert 123,456 stehen, aber 123,5 angezeigt werden ?
Das Runden musst du nicht selbst mit CInt usw. programmieren, dafür gibts die Funktion Round.
Allerdings rundet diese Funktion nicht "normal" mathematisch - schau mal in die VBA-Hilfe zu Round.
Alternativ kannst du die übliche Excelfunktion RUNDEN verwenden,
mit WorksheetFunction.Round(...) oder Application.Round(...).
In folgendem Beispiel steht der Wert 123,65 in Zelle B1, angezeigt wird 123,7 wegen des Zahlformats 0,0
Alle anderen Zellen haben Standardformat.
in Spalte C siehst du in C2 die Ungenauigkeit bei Single - ich würde Double verwenden.
| A | B | C | D | E |
1 | 123,65 | 123,7 | 123,7 | 123,7 | 123,7 |
2 | | 123,7 | 123,699997 | 123,6 | |
Formeln der Tabelle |
Zelle | Formel | B1 | =A1 | B2 | =RUNDEN(A1;1) |
|
Und hier das Makro, das die Werte in den Spalten C bis E liefert:
Sub rund()
Dim sngW As Single, dblW As Double
sngW = Cells(1, 1)
dblW = Cells(1, 1)
Cells(1, 3) = Application.Round(sngW, 1)
Cells(2, 3) = Round(sngW, 1)
Cells(1, 4) = Application.Round(dblW, 1)
Cells(2, 4) = Round(dblW, 1)
Cells(1, 5) = WorksheetFunction.Round(dblW, 1)
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort