Werte miteinander multiplizieren Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Werte miteinander multiplizieren

12 Feb 2019, 19:11

Hallo zsm,
Wie kann ich 2 Werte miteinander Multiplizieren?

So funktioniert:

Code: Select all

wert1 := 100
wert2 := 1.19
wert3 := wert1 * wert2
msgbox, % wert3
Wenn ich es so mache, funktioniert es nicht.

Code: Select all

SetFormat, Float, 0.2
AusgabeVar=
(
123456	256,99
654321	100,00
)
Loop, parse, AusgabeVar, `n
{
mwst := StrSplit(A_LoopField, "`t")
neunzehn := 1.19
mitmwst := (mwst[2]*neunzehn)
msgbox, % mwst[2] " " mitmwst
}
Was muss hier machen, damit es funktioniert?

Danke!
gregster
Posts: 9012
Joined: 30 Sep 2013, 06:48

Re: Werte miteinander multiplizieren  Topic is solved

12 Feb 2019, 19:34

Multiplikator und Multiplikand müssen beide im Zahlenformat vorliegen.

Kommata werden in Autohotkey (wie im angelsächsischen Sprachraum und Programmiersprachen üblich) nicht als Dezimaltrennzeichen erkannt. Stattdessen wird . als Dezimaltrennzeichen verwendet, wie du es oben ja teilweise schon tust. Du müsstest also ggf. die Kommas durch Punkte ersetzen - zumindest für die Berechnung. Danach kannst du ja wieder zurücktauschen... natürlich könntest du dir auch ne wiederverwendbare Funktion schreiben, die Zahlen im deutschen Format aufnimmt und wieder zurückgibt (während sie intern mit . rechnet). Aber AHK wird alles mit Kommata als Zeichenketten interpretieren.

Code: Select all

AusgabeVar=
(
123456	256,99
654321	100,00
)
Loop, parse, AusgabeVar, `n
{
mwst := StrSplit(A_LoopField, "`t")
neunzehn := 1.19
mitmwst := StrReplace(mwst[2], "," , ".") * neunzehn
msgbox, % mwst[2] " * 1,19 = " StrReplace(mitmwst, "." , ",")
}
Vielleicht gibt es auch irgendeinen DllCall, der die lokalen Präferenzen beim Multiplizieren berücksichtigt...

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 57 guests