Plausibilitätsprüfung?

  • Hi,

    eben bei dieser ist es erforderlich auch Zahlen mit Komma zu zulassen (z.B. 29,90).
    Meine Versuche waren bisher erfolglos, was muss ich ändern?

    Spoiler anzeigen
    [autoit]


    ; 1.
    If Not IsNumber(GUICtrlRead($tb_Brutto)) Then
    MsgBox(64, $_EingabeBrutto, "Nur Zahlen und statt Komma den Punkt einsetzen" & @LF & "Bitte überprüfen Sie Ihre Eingaben, Danke !")

    [/autoit] [autoit][/autoit] [autoit]

    ; 2.
    $tb_test = GUICtrlCreateInput("19", 16, 112, 137, 21, $ES_NUMBER)

    [/autoit] [autoit][/autoit] [autoit]

    ; 3.
    If Not StringIsDigit(GUICtrlRead($tb_Brutto)) Then
    MsgBox(64, $_EingabeBrutto, "Nur Zahlen und statt Komma den Punkt verwenden" & @LF & "Bitte überprüfen Sie Ihre Eingaben, Danke !")

    [/autoit]

    Danke
    Euer Ritzelrocker04

  • Hallo!

    sicher nicht perfekt, aber besser als diese Pseudo-Englischen Programme, die jedesmal mekern, wenn ich Punkt statt Komma eingebe.
    Hier Filter, nur Zahlen und aus , wird . gemacht

    Grüße

    German
    PS: aus meinem BMIcalc deswegen der Name der Funktion--)))


    Spoiler anzeigen
    [autoit]

    Func StringToNumgewicht($stringtoconv)
    Local $Hilf, $i, $convString
    $aryChar = StringSplit($stringtoconv, "")
    ; jetzt hab ich das Teil im array

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $aryChar[0]
    ; nur Ausgabe wenn Integer Wert
    $checkstring=StringIsInt($aryChar[$i])
    If $checkstring=1 Then
    $convString = $convString & $aryChar[$i]
    Else
    if $checkstring="," Then $convString = $convString & "."
    Endif
    Next
    Return $convString
    EndFunc

    [/autoit]

    Edit BugFix: Ich habe mal Tags gesetzt ;)
    Übrigens:
    Deine Funktion macht doch nichts anderes als jedes Komma in einen Punkt wandeln:

    [autoit]

    $str = StringReplace($str, ',', '.')

    [/autoit]
  • Sorry All!

    Bug-Fix hat Recht, so sollte das Funktionieren:
    Eingabe von
    otto --> x
    otto67,2 -->67.2
    in55.6 --> 55.6
    inge 66.2,4 --> x

    Also: korrigierbare Zahl: Antwort mit Punkt
    totaler schwachsinn (keine Zahlen oder doppelter Sperator: x)

    war ja auch klar, Kollege für den das Programm war (BMICALC) - hat auf den Schock hin erstmal ne Tafel Schokolade gebraucht --))))
    sprich es wurde nur einmal getestet


    Spoiler anzeigen
    [autoit]

    Func StringToNumgewicht($stringtoconv)
    ; Ausgabe der gesäuberten Zahl
    ; Fehlerfalle: Ausgabe von x
    $sepwritten=0 ; noch kein Punkt rausgeschrieben
    Local $Hilf, $i, $convString
    $aryChar = StringSplit($stringtoconv, "")
    ; jetzt hab ich das Teil im array

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $aryChar[0]

    [/autoit] [autoit][/autoit] [autoit]

    ; nur Ausgabe wenn Integer Wert
    If StringIsInt($aryChar[$i]) then
    $convString = $convString & $aryChar[$i]

    else
    select
    case $aryChar[$i]="," AND $sepwritten=1
    Return "x"
    case $aryChar[$i]="." AND $sepwritten=1
    Return "x"
    case $aryChar[$i]=","
    $convString=$convstring & "."
    $sepwritten=1
    case $aryChar[$i]="."
    $convString=$convstring & "."
    $sepwritten=1
    endselect

    Endif

    [/autoit] [autoit][/autoit] [autoit]

    Next
    if StringLen($convString)=0 then
    Return "x"
    Else
    Return $convString
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]

    Edit BugFix: (Mal wieder!!) Tags gesetzt.
    Mein lieber Holzwurm, wenn du nicht schleunigst den Gebrauch der Tags erlernst, werde ich dir etwas DichlorDimethylTrichlorethylen verpassen. :lol:
    Dann is Schluß mit lustig.. :P

    • Offizieller Beitrag

    Hi!

    Mir ist nicht ganz klar, ob du allgemein Zahlen testen willst oder nicht eher Währungsangaben (2 Dezimalstellen i.d.R.). Egal, hier die Lösung als Funktion mit RegExp (eine Zeile Code!) und kleinen Tests:

    [autoit]

    ConsoleWrite(isGermanNumber("23,23") & @CRLF) ; 1
    ConsoleWrite(isGermanNumber("3,234545") & @CRLF) ; 1
    ConsoleWrite(isGermanNumber(",23") & @CRLF) ; 0
    ConsoleWrite(isGermanNumber("23.23") & @CRLF) ; 0
    ConsoleWrite(isGermanNumber("23") & @CRLF) ; 1

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite(isGermanCurrency("23,23") & @CRLF) ; 1
    ConsoleWrite(isGermanCurrency("3,234545") & @CRLF) ; 0
    ConsoleWrite(isGermanCurrency(",23") & @CRLF) ; 0
    ConsoleWrite(isGermanCurrency("23.23") & @CRLF) ; 0
    ConsoleWrite(isGermanCurrency("23") & @CRLF) ; 1

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func isGermanNumber($_str)
    return StringRegExp($_str, "^\d+(,\d+)?$", 0)
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func isGermanCurrency($_str)
    return StringRegExp($_str, "^\d+(,\d{1,2})?$", 0)
    EndFunc

    [/autoit]

    peethebee

  • Hi peethebee,

    Hier mal der gesamte Code, vielleicht gibt es ja noch eine einfachere Lösung ?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("BNR v 1.0", 172, 263, 193, 117)

    [/autoit] [autoit][/autoit] [autoit]

    $tb_Brutto = GUICtrlCreateInput("", 16, 48, 137, 21)
    GUICtrlSetState(-1, $GUI_FOCUS)

    [/autoit] [autoit][/autoit] [autoit]

    $tb_Mwst = GUICtrlCreateInput("19", 16, 112, 137, 21, $ES_NUMBER)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 176, 136, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $bn_Rechnen = GUICtrlCreateButton("&Rechnen", 8, 208, 65, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

    [/autoit] [autoit][/autoit] [autoit]

    $bn_Close = GUICtrlCreateButton("&Beenden", 88, 208, 65, 25, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text1 = GUICtrlCreateLabel("Brutto-Betrag :", 16, 24, 72, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text2 = GUICtrlCreateLabel("Mwst-Satz :", 16, 88, 59, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text3 = GUICtrlCreateLabel("Netto-Betrag :", 16, 152, 70, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text4 = GUICtrlCreateLabel("Brutto - Netto - Rechner", 24, 240, 119, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    $_EingabeBrutto = GUICtrlRead($tb_Brutto)
    $_EingabeMwst = GUICtrlRead($tb_Mwst)
    Select
    Case $nMsg = $bn_Rechnen
    If IsNumber(GUICtrlRead($tb_Brutto)) = 1 Then ; *** Hier die Zeile mit meinem Problem ***
    MsgBox(64, $_EingabeBrutto, "Nur Zahlen und statt Komma den Punkt verwenden " & @LF & "Bitte überprüfen Sie Ihre Eingaben !")
    ElseIf $_EingabeMwst <> 7 And $_EingabeMwst <> 16 And $_EingabeMwst <> 0 And $_EingabeMwst <> 19 Then
    MsgBox(64, $_EingabeMwst, "Die Mwst kann nur 0, 7, 16, oder 19 Prozent betragen, " & @LF & "Bitte überprüfen Sie Ihre Eingaben !")
    Else
    $_Ergebnis1 = $_EingabeBrutto / (100 + $_EingabeMwst) * $_EingabeMwst ; Ergebnis gleich 14 Stellen nach dem Komma
    $_Ergebnis2 = Round($_Ergebnis1, 2) ; Ergebnis RUNDEN auf 2 Stellen nach dem Komma
    GUICtrlSetData($lb_Ausgabe, $_Ergebnis2)
    EndIf
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bn_Close
    Exit
    ExitLoop
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Schönes WE und Danke
    Euer Ritzelrocker04

  • Hi,
    ich muss doch noch mal Hilfe in Anspruch nehmen.
    In den im zweiten Spoiler befindlichen Code wollte ich die von peethebee und BugFix angeführten Funktionen einfügen,
    also:

    Spoiler anzeigen
    [autoit]


    Func isGermanCurrency($_str)
    return StringRegExp($_str, "^\d+(,\d{1,2})?$", 0)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; und

    [/autoit] [autoit][/autoit] [autoit]

    $str = StringReplace($str, ',', '.')

    [/autoit]


    Ich selbst habe wohl noch nicht genügend Erfahrungen in dieser Sache ?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

    $GUI = GUICreate("BNR v 1.0", 172, 263, 193, 117)

    $tb_Brutto = GUICtrlCreateInput("", 16, 48, 137, 21)
    GUICtrlSetState(-1, $GUI_FOCUS)

    $tb_Mwst = GUICtrlCreateInput("19", 16, 112, 137, 21, $ES_NUMBER)

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 176, 136, 17)

    $bn_Rechnen = GUICtrlCreateButton("&Rechnen", 8, 208, 65, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

    $bn_Close = GUICtrlCreateButton("&Beenden", 88, 208, 65, 25, 0)

    $lb_Text1 = GUICtrlCreateLabel("Brutto-Betrag :", 16, 24, 72, 17)

    $lb_Text2 = GUICtrlCreateLabel("Mwst-Satz :", 16, 88, 59, 17)

    $lb_Text3 = GUICtrlCreateLabel("Netto-Betrag :", 16, 152, 70, 17)

    $lb_Text4 = GUICtrlCreateLabel("Brutto - Netto - Rechner", 24, 240, 119, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    $_EingabeBrutto = GUICtrlRead($tb_Brutto)
    $_EingabeMwst = GUICtrlRead($tb_Mwst)
    Select
    Case $nMsg = $bn_Rechnen
    If IsNumber(GUICtrlRead($tb_Brutto)) = 1 Then ; *** Hier die Zeile mit meinem Problem ***
    MsgBox(64, $_EingabeBrutto, "Nur Zahlen und statt Komma den Punkt verwenden " & @LF & "Bitte überprüfen Sie Ihre Eingaben !")
    ElseIf $_EingabeMwst <> 7 And $_EingabeMwst <> 16 And $_EingabeMwst <> 0 And $_EingabeMwst <> 19 Then
    MsgBox(64, $_EingabeMwst, "Die Mwst kann nur 0, 7, 16, oder 19 Prozent betragen, " & @LF & "Bitte überprüfen Sie Ihre Eingaben !")
    Else
    $_Ergebnis1 = $_EingabeBrutto / (100 + $_EingabeMwst) * $_EingabeMwst ; Ergebnis gleich 14 Stellen nach dem Komma
    $_Ergebnis2 = Round($_Ergebnis1, 2) ; Ergebnis RUNDEN auf 2 Stellen nach dem Komma
    GUICtrlSetData($lb_Ausgabe, $_Ergebnis2)
    EndIf
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bn_Close
    Exit
    ExitLoop
    EndSelect
    WEnd

    [/autoit]

    Danke
    Euer Ritzelrocker04

  • Hi, funktioniert so noch nicht. Ist aber ein erster Anhaltspunkt:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    main()

    [/autoit] [autoit][/autoit] [autoit]

    Func OnAutoItStart()
    Opt("MustDeclareVars", 1)
    EndFunc ;==>OnAutoItStart

    [/autoit] [autoit][/autoit] [autoit]

    Func main()
    Local $h_bruttoinp = -1, $h_mwstinp = -1, $h_ausgabelbl = -1, $h_rechnenbt = -1, $h_closebt = -1
    Local $n_brutto = "", $n_mwst = ""

    GUICreate("BNR v 1.0", 172, 263, 193, 117)
    $h_bruttoinp = GUICtrlCreateInput("", 16, 48, 137, 21)
    $h_mwstinp = GUICtrlCreateInput("19", 16, 112, 137, 21, $ES_NUMBER)
    $h_ausgabelbl = GUICtrlCreateLabel("", 16, 176, 136, 17)
    $h_rechnenbt = GUICtrlCreateButton("&Rechnen", 8, 208, 65, 25, 0)
    GUICtrlSetState(-1, $GUI_DEFBUTTON)
    $h_closebt = GUICtrlCreateButton("&Beenden", 88, 208, 65, 25, 0)
    GUICtrlCreateLabel("Brutto-Betrag :", 16, 24, 72, 17)
    GUICtrlCreateLabel("Mwst-Satz :", 16, 88, 59, 17)
    GUICtrlCreateLabel("Netto-Betrag :", 16, 152, 70, 17)
    GUICtrlCreateLabel("Brutto - Netto - Rechner", 24, 240, 119, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $h_rechnenbt
    $n_brutto = StringReplace(GUICtrlRead($h_bruttoinp), ',', '.')
    $n_mwst = GUICtrlRead($h_mwstinp)

    [/autoit] [autoit][/autoit] [autoit]

    If Not _IsGermanCurrency($n_brutto) Then
    MsgBox(64, $n_brutto, "Nur Zahlen und statt Komma den Punkt verwenden " & @CR & "Bitte überprüfen Sie Ihre Eingaben !")
    ElseIf $n_mwst <> 7 And $n_mwst <> 16 And $n_mwst <> 0 And $n_mwst <> 19 Then
    MsgBox(64, $n_mwst, "Die Mwst kann nur 0, 7, 16, oder 19 Prozent betragen, " & @CR & "Bitte überprüfen Sie Ihre Eingaben !")
    Else
    GUICtrlSetData($h_ausgabelbl, Round($n_brutto / (100 + $n_mwst) * $n_mwst, 2))
    EndIf
    Case $GUI_EVENT_CLOSE, $h_closebt
    Exit
    EndSwitch
    WEnd
    EndFunc ;==>main

    [/autoit] [autoit][/autoit] [autoit]

    Func _IsGermanCurrency(Const $S_TEXT)
    Return (StringRegExp($S_TEXT, "^\d+(,\d{1,2})?$", 0))
    EndFunc ;==>_IsGermanCurrency

    [/autoit]

    Habl leider keine Zeit jetzt, da ich weg muss.

    • Offizieller Beitrag

    Hi!

    Statt

    [autoit]

    GUICtrlSetData($h_ausgabelbl, Round($n_brutto / (100 + $n_mwst) * $n_mwst, 2))

    [/autoit]

    dann noch

    [autoit]

    $n_brutto = StringReplace($n_brutto, ",", ".")
    GUICtrlSetData($h_ausgabelbl, Round($n_brutto / (100 + $n_mwst) * $n_mwst, 2))

    [/autoit]

    Dann sollte es gehen.

    peethebee

  • Hi,

    ich habe mein Script angepasst und es funktioniert jetzt sehr gut (Anpassungen siehe Markierung). Allerdings noch ohne die _IsGermanCurrency - Funktion um mögliche Fehlerquellen auszuschliessen. Mit dieser Funktion geht es noch nicht.

    Angepasste Version "ohne"

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("BNR v 1.0", 172, 263, 193, 117)

    [/autoit] [autoit][/autoit] [autoit]

    $tb_Brutto = GUICtrlCreateInput("", 16, 48, 137, 21)
    GUICtrlSetState(-1, $GUI_FOCUS)

    [/autoit] [autoit][/autoit] [autoit]

    $tb_Mwst = GUICtrlCreateInput("19", 16, 112, 137, 21, $ES_NUMBER)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Ausgabe = GUICtrlCreateLabel("", 16, 176, 136, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $bn_Rechnen = GUICtrlCreateButton("&Rechnen", 8, 208, 65, 25, 0)
    GUICtrlSetState(-1,$GUI_DEFBUTTON)

    [/autoit] [autoit][/autoit] [autoit]

    $bn_Close = GUICtrlCreateButton("&Beenden", 88, 208, 65, 25, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text1 = GUICtrlCreateLabel("Brutto-Betrag :", 16, 24, 72, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text2 = GUICtrlCreateLabel("Mwst-Satz :", 16, 88, 59, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text3 = GUICtrlCreateLabel("Netto-Betrag :", 16, 152, 70, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $lb_Text4 = GUICtrlCreateLabel("Brutto - Netto - Rechner", 24, 240, 119, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    $_EingabeBrutto = StringReplace(GUICtrlRead($tb_Brutto), ',', '.') ; <=ersetzt, vorher GUICtrlRead($tb_Brutto)
    $_EingabeMwst = GUICtrlRead($tb_Mwst)
    Select
    Case $nMsg = $bn_Rechnen
    If $_EingabeMwst <> 7 And $_EingabeMwst <> 16 And $_EingabeMwst <> 0 And $_EingabeMwst <> 19 Then
    MsgBox(0, $_EingabeMwst, "Die Mwst kann nur 0, 7, 16, oder 19 Prozent betragen," & @LF & "Bitte überprüfen Sie Ihre Eingaben !")
    Else
    ;$_Ergebnis1 = $_EingabeBrutto / (100 + $_EingabeMwst) * $_EingabeMwst ; Ergebnis gleich 14 Stellen nach dem Komma
    ;$_Ergebnis2 = Round($_Ergebnis1, 2) ; Ergebnis runden auf 2 Stellen nach dem Komma
    ;GUICtrlSetData($lb_Ausgabe, $_Ergebnis2)
    GUICtrlSetData($lb_Ausgabe, Round($_EingabeBrutto / (100 + $_EingabeMwst) * $_EingabeMwst, 2)) ; <=ersetzt, vorher die 3 oberen Zeilen = 2 gespart
    EndIf
    Case $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bn_Close
    Exit
    ExitLoop
    EndSelect
    WEnd

    [/autoit]

    Danke
    Euer Ritzelrocker04

  • Hi,

    hier mal das fertige Skript mit pees Überprüfung:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstants.au3>

    main()

    Func OnAutoItStart()
    Opt("MustDeclareVars", 1)
    EndFunc ;==>OnAutoItStart

    Func main()
    Local $h_bruttoinp = -1, $h_mwstinp = -1, $h_ausgabelbl = -1, $h_rechnenbt = -1, $h_closebt = -1
    Local $n_brutto = "", $n_mwst = ""

    GUICreate("BNR v 1.0", 172, 263, 193, 117)
    $h_bruttoinp = GUICtrlCreateInput("", 16, 48, 137, 21)
    $h_mwstinp = GUICtrlCreateInput("19", 16, 112, 137, 21, $ES_NUMBER)
    $h_ausgabelbl = GUICtrlCreateLabel("", 16, 176, 136, 17)
    $h_rechnenbt = GUICtrlCreateButton("&Rechnen", 8, 208, 65, 25, 0)
    GUICtrlSetState(-1, $GUI_DEFBUTTON)
    $h_closebt = GUICtrlCreateButton("&Beenden", 88, 208, 65, 25, 0)
    GUICtrlCreateLabel("Brutto-Betrag :", 16, 24, 72, 17)
    GUICtrlCreateLabel("Mwst-Satz :", 16, 88, 59, 17)
    GUICtrlCreateLabel("Netto-Betrag :", 16, 152, 70, 17)
    GUICtrlCreateLabel("Brutto - Netto - Rechner", 24, 240, 119, 18)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x808080)

    GUISetState()

    While 1
    Switch GUIGetMsg()
    Case $h_rechnenbt
    $n_brutto = GUICtrlRead($h_bruttoinp)
    $n_mwst = GUICtrlRead($h_mwstinp)

    If Not _IsGermanCurrency($n_brutto) Then
    MsgBox(64, $n_brutto, "Nur Zahlen und statt Punkt das Komma verwenden!" & @CR & "Bitte überprüfen Sie Ihre Eingaben!")
    ElseIf $n_mwst <> 7 And $n_mwst <> 16 And $n_mwst <> 0 And $n_mwst <> 19 Then
    MsgBox(64, $n_mwst, "Die MwSt kann nur 0, 7, 16, oder 19 Prozent betragen," & @CR & "Bitte überprüfen Sie Ihre Eingaben!")
    Else
    GUICtrlSetData($h_ausgabelbl, StringReplace(Round(StringReplace($n_brutto, ",", ".") / (100 + $n_mwst) * $n_mwst, 2), ".", ","))
    EndIf
    Case $GUI_EVENT_CLOSE, $h_closebt
    Exit
    EndSwitch
    WEnd
    EndFunc ;==>main

    [/autoit] [autoit][/autoit] [autoit]

    ;~ by peethebee
    Func _IsGermanCurrency(Const $S_TEXT)
    Return (StringRegExp($S_TEXT, "^\d+(,\d{1,2})?$", 0))
    EndFunc ;==>_IsGermanCurrency

    [/autoit]

    Zur Erklärung:
    1. Es muss eine Kommazahl oder eine Zahl ohne Nachkommastellen eingegeben werden.
    2. Das Komma wird ersetzt durch einen Punkt, die Berechnung wird durchgeführt und beim Ergebnis wird der Punkt wieder durch das Komma ersetzt. (Macht meiner Meinung nach am meisten Sinn.