Du bist nicht angemeldet.

[ gelöst ] Komma rechnen ?

Kontrollzentrum

Spenden

Jeder Euro hilft uns, euch zu helfen.

Adsense

Downloads

Stabil: 3.3.8.1 (Q, H)
Stabil: 3.3.12.0 (Q, H)
Beta: 3.3.11.5 (Q, H)
SciTE: 4/5/2014 (Q, H)
Hilfe Deutsch: 12/23/2013 (Q)
Download: OrganizeIncludes (Q)
Stand: 02.06.2014 - 2:21 Uhr
  • »Julien« ist der Autor dieses Themas

Registrierungsdatum: 10. November 2011

  • Private Nachricht senden

1

Sonntag, 26. Februar 2012, 19:10

Komma rechnen ?

Hallo,

ich habe mal aus Langeweile so einen Einkaufslistenersteller erstellt und habe nun das Problem, dass er Zahlen mit einem Komma nicht richtig rechnet.

Weiß jemand woran es liegt?

Skript :

  Spoiler Spoiler

AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $VGesamtpreis = 0,$VArtikelGesamt = 0
$MainGUI = GUICreate("Einkaufslistenersteller", 615, 459, 192, 124)
$LName = GUICtrlCreateLabel("Name der Ware", 8, 8, 93, 17)
$IName = GUICtrlCreateInput("", 104, 8, 329, 21)
$LPreis = GUICtrlCreateLabel("Preis", 448, 8, 27, 17)
$IPreis = GUICtrlCreateInput("", 480, 8, 121, 21)
$LKommentar = GUICtrlCreateLabel("Kommentar", 8, 48, 57, 17)
$IKommentar = GUICtrlCreateInput("", 80, 48, 521, 21)
$BHinzufugen = GUICtrlCreateButton("hinzufügen", 528, 88, 75, 25)
$ListAll = GUICtrlCreateListView("Name          |          Preis          |          Kommentar ", 8, 120, 593, 331)
$LGesamtpreis = GUICtrlCreateLabel("Gesamtpreis : 0,00 €", 8, 88, 198, 17)
$LArtikelAktuell = GUICtrlCreateLabel("Aktuelle Anzahl der Artikel : 0", 216, 88, 271, 17)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $BHinzufugen
            _Add()
    EndSwitch
WEnd

Func _Add()
    GUICtrlCreateListViewItem(GuiCtrlRead($IName) & '          |          ' & GuiCtrlRead($IPreis) & '          |          ' & GuiCtrlRead($IKommentar), $ListAll)
$Split = StringSplit(GuiCtrlRead($IPreis),",")
If UBound($Split) > 2 Then
    $VGesamtpreis += $Split[1] & "," & $Split[2]
Else
$VGesamtpreis += GuiCtrlRead($IPreis)
EndIf
$VArtikelGesamt += 1
GuiCtrlSetData($LGesamtpreis,"Gesamtpreis : " & $VGesamtpreis & "€")
GuiCtrlSetData($LArtikelAktuell,"Aktuelle Anzahl der Artikel : " & $VArtikelGesamt)
EndFunc


MfG , Julien

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Julien« (27. Februar 2012, 00:25)


Registrierungsdatum: 19. Mai 2006

  • Private Nachricht senden

2

Sonntag, 26. Februar 2012, 19:17

Im englischen - und damit in so gut wie jeder Programmiersprache - ist nicht das Komma das Dezimaltrennzeichen sondern der Punkt.
Du musst also bevor du die Eingabe als Zahl zum Berechnen verwendest mit StringReplace() das Komma in einen Punkt umwandeln.

Registrierungsdatum: 7. November 2010

  • Private Nachricht senden

3

Sonntag, 26. Februar 2012, 19:17

Puh, ich bin grad mal eindeutig zu faul das Script zu lesen, aber im englischen wird als Dezimaltrennzeichen ein Punkt verwendet^^

LG chess

PS: Kopfschmerztablettenjunkie war schneller ;)
[Tutorial] Sauber Programmieren
Rainbow Dash
"EMP Granate im Apple-Store!"

James1337 (22.09.2012, 16:46)



  • »Julien« ist der Autor dieses Themas

Registrierungsdatum: 10. November 2011

  • Private Nachricht senden

4

Montag, 27. Februar 2012, 00:25

Danke ;)

autoit.de Webutation