# kommastellen



## Johannes Postler (7. April 2002)

hallo leute

kann mir jemand sagen, wie ich rausbekomme, wieviel kommastellen eine zahl hat?

thx 
tirolausserfern


----------



## Justus (7. April 2002)

Also nen einfachen befehl kenn ich net ... aber man könnte das auch anders machen.
Wenn die Zahl z.B in einer Textbox steht, suchst du mit Instr(Text1.Text, ",") nach der stelle des kommas.
Dann ziehst du diese Zahl von Len(text1.text) ab und hast die stringlänge nach dem komma.
Wahrscheinlich geht das auch viel einfacher, aber ich kenn keinen direkten Befehl mit dem man das machen kann.


----------



## Daniel Toplak (7. April 2002)

Ja die Möglich keit von Justus ist ok, wenn die Zahl in einer Textbox steht, aber wenn du sie nur im Programm verwendest in einer Variablen geht das ein wenig anders, aber ähnlich. Du musst die Zahl in einen String umwandeln und dann schauen wo das Komma ist. Ich schreib mal einen Code rein, der eine Funktion enthält, die als Rückgabewert die Anzahl der Stellen hat:


Option Explicit
Dim zahl As Double
Dim kommastellen As Integer
Private Sub Form_Load()

    zahl = 3.12345678
    kommastellen = stellen(zahl)
    MsgBox (kommastellen)
End Sub
Private Function stellen(zahl As Double) As Integer
    Dim str_zahl As String
    Dim str_temp As String
    str_zahl = CStr(zahl)
    Dim i As Integer
    Dim komma As Boolean
    komma = False
    For i = 1 To Len(str_zahl)
        If komma = True Then str_temp = str_temp + Mid(str_zahl, i, 1)
        If Mid(str_zahl, i, 1) = "," Then komma = True
    Next i
    stellen = Len(str_temp)
End Function



Gruss Homer


----------



## Johannes Postler (7. April 2002)

danke homer
kann mir jetzt noch jemand sagen, wie ich es machen kann, dass das prog. von einer zahl soundsoviele kommastellen löscht??

cu tirolausserfern


----------



## Daniel Toplak (8. April 2002)

@ tirolausserfern 

Da musst du die Funktion von mir einfach ein wenig umgestallten, d.h. du "schneidest" einfach so und soviele Kommastellen hinten ab, danch wandelst du die Zahl wieder in einen double-Wert um mit CDbl(sting), wenn du damit rechnen willst.

Gruss Homer


----------



## Johannes Postler (8. April 2002)

bin inzwischen auf einen anderen weg draufgekommen:
variable = format(variable, "#,##0.00")

cu tirolausserfern


----------



## Majestro82 (15. April 2002)

*Jo*

Jo das is wahrscheinlich das sinnvollste
einfacher  `round` Befehl!
Majestro


----------

