Rechnen mit Kommazeichen.

  • hey,

    ich habe mal wieder ein blödes Problem :thumbdown:

    und zwar .. hab ich ein Programm mit Listview und will darin verschiedene Werte addieren (oder subtrahieren).
    Allerdings wird beim eingeben mit "," eben nichts gerechnet.

    4,5 + 5 -> geht nicht
    4.5 + 5 -> 9,5

    Aus Verständnisgründen möchte ich aber im Listview die Nachkommastellen eben mit einem Komma abtrennen und nicht mit einem Punkt (wo gibts denn sowas?).
    Gibts dafür eine einfache, schnelle Lösung?
    Man könnte vor dem Rechenvorgang 4,5 in 4.5 umwandeln und dann das Ergebnis wieder durch ein Komma dastellen.
    Ist jetzt aber irgendwie nicht so wie ich mir das vorgestellt hab.

    Gibt dafür kein: GUIDataSeparatorChar oder sowas ähnliches?

    Gruß nuts

    Einmal editiert, zuletzt von nuts (16. April 2009 um 15:30)

  • ja ich hab schon eine idee aber einfach kann man die auf keinen fall nennen :D
    man könnte mit stringsplit die 4.5 ab dem punkt abtrennen dann hat man en array wert [0] = 4 wert[1] wäre dann 5
    dann könnte man machen :

    [autoit]

    $wert[0]&"."&$wert[1]

    [/autoit]


    dann hätte man die 4.5
    so nochmal in ganz :

    Spoiler anzeigen
    [autoit]

    $Var="4,5"
    $var2=StringSplit($Var,",")
    ;$var2[1] ist dann 4 und $var2[2] ist 5
    $rightnumber=$var2[1]&"."&$var2[2]

    [/autoit]
  • Ach dafür kann man StrinRegReplace benutzen? Ich werde mir mal angewöhnen müssen die String-Funktionen öfter zu benutzen... :wacko:

  • Keine Ahnung - ich kann nur Autoit :D

    Excel z.B. hat kein Problem (Autoit mit Umwandlung auch nicht aber naja) damit und auch sonst ist es üblich Dezimalstellen mit einem Komma abzutrennen.

  • ISt doch aber auch nicht viel man kann es ja auch einfach so machen:

    Spoiler anzeigen
    [autoit]

    $Wert1 = "10,23"
    $Wert2 = "4.578"
    MsgBox (0,"Ergebnis",StringReplace ($Wert1,",",".") + StringReplace ($Wert2,",","."))

    [/autoit]

    mfg. Jam00

  • Nagut - die englische Schreibweise war mir jetzt nicht bekannt.

    Hierzulande werden Zahlen aber (zum Glück) anders dargestellt (10.000,00 -> englische Schreibweise: 10,000.00 ? <- wie sieht das denn aus?)

    Man bräuchte also eine deutsche Autoit version, die Kommas als Dezimaltrennzeichen bei Zahlenwerten vorsieht.
    Wird aber vielleicht unsinnig beim Übersetzen in C++ (Basis von Autoit soweit ich weiss) wird dann das Komma wieder zum Punkt.

    Wie auch immer - ich passe mein Skript an :P

    Einmal editiert, zuletzt von nuts (16. April 2009 um 15:16)

  • Naja theoretisch könnte doch der ganze Aufbau mit "," bleiben und nur wenn in einer Variablen ein Zahlenwert übergeben wird wirkt eben das Komma wie ein Punkt.
    So stell ich mir das in meinem jugendlichen Leichtsinn vor ;)