Rubrik: Variablen/Strings · Algorithmen/Mathematik | VB-Versionen: VB4, VB5, VB6 | 07.10.05 |
Größte Dezimalstelle einer Zahl ermitteln II Haben Sie schon mal versucht die größte Dezimalstelle einer Zahl zu ermitteln? | ||
Autor: Gero Bonow | Bewertung: | Views: 8.852 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
In meinem letzten Tipp (Größte Dezimalstelle einer Zahl ermitteln) hatte ich Ihnen gezeigt, wie man mit der Log-Funktion den Exponenten einer beliebigen Zahl ermitteln kann.
Leider hat sich hier ein Fehler eingeschlichen, der bei bestimmten Werten das Ergebnis unbrauchbar machen kann.
Hier die korrigierte Variante, die zwar nicht so schnell ist wie die alte, aber dafür die korrekten Werte liefert
Public Function GetExponent(ByVal Value As Double) As Integer Dim Tmp As String ' Maximale Maschinengenauigkei verwenden ' (Double = 15 Dezimalstellen) Tmp = Format(Value, "0.00000000000000E+000") If Value < 1 Then GetExponent = -1 * CInt(Right(Tmp, 3)) Else GetExponent = CInt(Right(Tmp, 3)) + 1 End If End Function