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

Lieber Besucher, herzlich willkommen bei: AutoIt.de - Das deutsche AutoIt-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »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