€() - Währungformat zum Rechnen mit AHK umwandeln

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

€() - Währungformat zum Rechnen mit AHK umwandeln

22 May 2020, 08:53

MIt dem hierzulande gebräuchlichen Währungsformat, welches mit Komma statt Punkt separiert wird, kann AHK nicht rechnen.
Wird zudem noch ein 'Tausendertrennzeichen' bei Währungsangaben verwendet, hilft das auch nicht weiter. Und das Währungssymbol? NeT.

Hier also ein einfacher(er, weil RegEx-freier) "Konvertierer". Dann noch etwas zur derzeitigen Lage bzgl Trennzeichen in Währungsangaben:
https://language-boutique.de/naithani/blogpost/die-richtige-verwendung-von-punkt-und-komma-als-trennzeichen-bei-zahlen.html

Code: Select all

#NoEnv
#SingleInstance, Force

StdL := "22,50 €"									; betrag mit nachkommastellen und €-zeichen ("string")
MsgBox % €(StdL)									; betrag mittels variable übergeben (var)
MsgBox % €("23.544,98")								; betrag mit "tausender-punkt" und nachkommastellen ("string")
MsgBox % €("12,23")									; betrag mit nachkommastellen ("string")
MsgBox % €(9 €)										; voller betrag ohne nachkommastellen (number)
MsgBox % Round(€(StdL) + €("2,55€"),2)				; rechnung mit vorab konvertierten beträgen, ergebnis auf 2 nachkommastellen gerundet

array:= ["23.000,99","10000,99","-9.000",15000]		; array mit gemischten beträgen
For each, figure in array
	MsgBox % €(figure)
	Return

€(figure) {
	Return Round(StrReplace(StrReplace(StrReplace(figure,"€",""),".",""),",","."),2) ; betrag um "tausender-punkt(e)" bereinigen, komma zu punkt anglizieren.
}
PS. wird mit AHK eine Berechnung vorgenommen, wobei sich als Ergebnis eine Fließkommazahl ergibt, wird diese auf 6! Nachkommastellen ausgegeben. Warum das so sein muß, zumal 99% der Alltagsberechnungen auch mit zwei Nachkommastellen ausreichen würden, who knows?? Deshalb müssen Ergebnisse (noch zusätzlich) auf die gewünschte Anzahl Nachkommastellen gerundet werden.
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
toralf
Posts: 868
Joined: 27 Apr 2014, 21:08
Location: Germany

Re: €() - Währungformat zum Rechnen mit AHK umwandeln

22 May 2020, 12:34

Danke für die Funktion.
Ich finde den Namen klasse.

Bzgl der Nachkomme Stellen möchte ich dir aber widersprechen. Beim Rechnen sollten soviele Stellen genutzt werden wie möglich. Ansonsten summieren sich die Fehler. Zum Anzeigen sollte Format() genutzt werden.
Und auch da ist 2 nicht notwendigerweise default. Geo Koordinaten sollten z.b. Mehr als 2 haben
ciao
toralf
BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

Re: €() - Währungformat zum Rechnen mit AHK umwandeln

22 May 2020, 13:37

Hallo toralf,
stimme dir da zu, sofern es um wissenschaftliche und techchnische Belange geht. Finanztechnisch dürften allerding bevorzugt Großbanken, Börsenhändler u.ä. > 2 Nachkommastellen rechnen. Sobald es ans Hartgeld, und alles Physische im Umfeld von Herrn Mustermann und Familie geht, wird vorerst noch 'mal Daumen' gerechnet. Und das dürfte die Mehrzahl der Menschheit im schnöden Alltag betreffen. Deshalb fände ich eine zweistellige Ausgabe schlicht praktikabler, und wer meint NASA-stuff mit AHK frickeln zu müssen, sollte dann per 'on demand'-parameter in die Lage versetzt werden eine beliebige Anzahl verborgener Stellen nachzufordern. Und wird final dann doch zu JAVA/Python/Perl etc greifen :)

PS. Wer ein Fan von AHK's Format()-Befehl ist, kann gerne den Ausgabewert von €() auf die im verlinkten Artikel beschriebenen Formate zurückwandeln :angel: ...
die da wären: 21.310.002,98 bzw 21 310 002,98 (auf beliebig viele Vorkommastellen :mrgreen:). Wäre super :thumbup:

PPS. @toralf heisst das jetzt wirklich Nachkomme Stellen? Würde ja tatsächlich Sinn machen?!! Oder ist das der Posten eines Firmennachkommen?
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
toralf
Posts: 868
Joined: 27 Apr 2014, 21:08
Location: Germany

Re: €() - Währungformat zum Rechnen mit AHK umwandeln

22 May 2020, 17:14

Ne, war nur die Rechtschreibekorrektur meines Telefons.
ciao
toralf
User avatar
haichen
Posts: 631
Joined: 09 Feb 2014, 08:24

Re: €() - Währungformat zum Rechnen mit AHK umwandeln

23 May 2020, 06:32

Und von jNizM gibts dann das passende Pendant GetCurrencyFormat:
https://www.autohotkey.com/boards/viewtopic.php?p=56005#p56005

Super!!
BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

Re: €() - Währungformat zum Rechnen mit AHK umwandeln

23 May 2020, 13:25

Super Fund ! Danke :thumbup: (ich wusste DllCall() holt mich irgendwie wieder ein) :lol:
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 14 guests