Darstellung der Währungen ohne Dezimalstellen

Hallo nochmal und entschuldigt bitte die zwei Threads. Ich erstelle diesen hier, weil es ein separates Thema ist.

Ich verwende derzeit einen Workaround um Käufe in japanischen Yen einzutragen und finde es währe sinnvoll langfristig, dass Problem innerhalb des Programms zu beheben. Es handelt sich um Folgendes:

Die meisten Hauptwährungen wie Euro, U.S.-Dollar und die britischen Pfund sind haben alle die Cents als die kleinste handelbare Einheit, während die Kurse selbst in Einheiten von Hunderten von Cent dargestellt werden. Alle Aufträge und Überweisungen werden in Cent als der kleinsten handelbaren Einheit getätigt und man kann keine einzelne Zahlung von 0,5 Cent an jemanden tätigen. Portfolio Performance arbeitet natürlich auch auf dieser Logik.

Das Problem tritt ein, wenn die Währung selbst nur aus Cent besteht. Dies ist der Fall bei japanischen Yen*, koreanischen Won, norwegischen Kronen und einer langen Liste von anderen Währungen die hier aufgelistet sind. Das führt dazu, dass bspw. JPY 500.000 in PP als JPY 500.000,00 dargestellt werden, wobei die „,00“ nicht keinen Sinn ergeben da es unmöglich ist einen Yen aufzuteilen.

2020-04-25 14_26_33-

Das Problem ist aber leider nicht nur kosmetisch. Oben ist eine tatsächliche Buy-Order für 32,3457 Anteile an einem Investmentfonds mit dem Kaufwert von JPY 500.000. Der Kurs wird vom Broker als 15.458 pro Anteil berechnet. 32,3457 * 15.458 ergibt 499.999,8306‬ welches PP zu 499.999,83 abrundet. Dies wäre vollkommen legitim im Falle Euro oder USD, ist aber nicht der tatsächliche Yen-Betrag, der sich in meinem Depot befindet, da der Broker stattdessen auf JPY 500.000 hochrundet.

Das führt zu einem Kompromiss: 1.) lässt man die Werte so wie die sind, was es jedoch schwer macht PP mit den Brokerdaten zu vergleichen, oder 2.) ändert man die inexistenten Dezimalstellen des Kaufkurses um den richtigen Kaufwert zu erhalten und trägt den tatsächlichen Kaufkurs als eine Notiz ein. So oder so entstehen künstliche Dezimalwerte, die keinen realen Bezug haben. Keine dieser Vorgehensweise ist ideal und es wäre meiner Meinung nach sinnvoll, wenn PP die unterschiedlichen Währungen intelligenter Behandeln würde.

Wäre die Umsetzung der währungsabhängingen Rundungen schwer? Es ist ein ziemlich fundamentales Problem.

  • Für neugierige und irrelevant zum Thema: Eigentlich gab es bis vor 1953 schon die japanische Yen Cents die man sen nannte. Noch lustiger ist, dass es auch eine noch kleinere Einheit gab, die rin, die eine tausendste von einem Yen darstellte.
  • Weiter für neugierige: Um dass ganze noch komplizierter zu machen–und ich schlage keines Falls vor dies überhaupt irgendwann als eine Feature umzusetzen–werden die englische „Tausende-Kommas“ gelegentlich (meistens aber nicht) nicht nach jeder dritten, sondern nach jeder vierten Stelle gesetzt, bspw. statt $100,000 sieht man gelegentlich $10,0000 oder $100,000,000 als $1,0000,0000. Dies hat damit zu tun, dass japanische numerische Schritte in 10^4 Einheiten statt der westlichen 10^3 berechnet werden. Ergo statt Tausend (10^3), Million (10^6), Milliarde (10^9), Billion (10^12) sind die Einheiten man (10^4), oku (10^8), chô (10^12) und kei (10^16). 10 Millionen sind somit ein Tausend Zehntausenden. Das macht jede Umwandlung von allen Zahlen zwischen einem Tausend und einer Billion, wo es parallele Einheiten gibt, besonderes lustig. Nur so ganz nebenbei für alle anderen zahlenbegeisterte Forum-Mitglieder.

Um die Antwort kurz zu halten, der Kaufkurs hat nur einen informativen Charakter da jede Berechnung mit dem Gesamtwert (hier 500.000) und der erfassten Stückzahl verwendet. Der Kaufkurs ist irrelevant.

Auf der anderen Seite, es ist ein mathematisches Problem denn auch beim japanischen Yen entstehen Rundungsdifferenzen. Aber wenn du es schaffst eine Lösung dafür zu finden, dass deine Rechnung ohne Differenz aufgeht (runden ist keine Option) lässt sich darüber reden.

Was im übrigen die Thematik 3 vs 4 der Zahlenformatierung betrifft, dass Format gibt das Betriebssystem basierend auf der Landeskennung vor :wink: und gibt Java vor.

Danke für die schnelle Antwort. :slight_smile:

Meinem Verständnis nach ist es aber das genau was bei dem Broker passiert. Ich habe jetzt meine andere Transaktionen angesehen und es wird offenbar gerundet. Wäre es vielleicht Möglich anstatt die tatsächlichen Daten zu runden stattdessen die Yen-Beträge in der Benutzeroberfläche auf die nähste einzelne Einheit gerundet anzuzeigen? Ich bin leider des Javas nicht mächtig, aber bei Python ist es nur eine Frage davon wie viele Dezimalstellen als Format bei der Ausgabe gewählt worden. Dies wäre dann eine reine GUI-Sache und nicht besonderes intrusiv.

Interessant und sehr praktisch. Ich probiere mal bei Gelegenheit alles auf Japanisch Umzustellen und schauen wie es sich verhält. :slight_smile:

Die Daten werden nicht gerundet. In deinem Beispiel speichert PP exakt 500000 Yen und exakt 32,3457 Anteile (Anteilsbruchteile mit bis zu sechs Nachkommastellen).

Das tut mir leid, ich habe mich etwas ungeschickt ausgedruckt. Gerundet wird vom Broker während des Kaufes, nicht im PP. Genau deswegen entsteht auch die Diskrepanz, da PP derzeit so aufgebaut ist, dass das Programm annimmt man könne Yen weiterhin aufteilen. Dies ist nicht der Fall und wäre so als hätte man Eurocents aufgeteilt. Die Darstellung von Euro als XXX.XXX,XX und von Yen als XXX.XXX würde das Problem beheben, da die Nachkommastellen bei Yen-Beträgen sowieso bedeutungslos sind.

Hier ein Beispiel der Kaufbestätigung für die obige Order.

Die Spalten sind jeweils: Name des Instruments (EXE-i usw.) und des WKN, Anzahl der Anteile, Kaufpreis pro 10.000 Anteile, Gesamtpreis.

Lustigerweise wird darin der Kurs in Yen mit zwei Nachkommastellen angegeben. :wink:

PP speichert genau zwei Dinge: den Endbetrag (hier 500000 Yen) , damit das Konto stimmt, und die Stückzahl (hier 32,3457), damit der Depotbestand stimmt. Wie @Ragas schon sagte: Der Kurs wird nicht gespeichert, sondern jeweils berechnet. Und es ist einfach eine Tatsache, daß du hier nicht 15458 Yen pro Aktie bezahlt hast, sondern 15458,005237… Yen.

Ach, das mit der Datenspeicherung habe ich irgendwie nicht sofort mitbekommen. Gut, so gesehen gibt es eigentlich kein Problem, abgesehen von den unnötigen Nachkommastellen.

Ich weiß was du meinst und man würde annehmen, dass der Kurs selbst Nachkommastellen enthalten kann, da es bei mehreren Anteilen dazu führen kann, dass diese relevant werden. Es wird aber tatsächlich gerundet hier. Bei 15458,005237 sind die ersten Nachkommastellen eigentlich nur zufälligerweise Nuller. Ich habe interessehalber bei anderen Transaktionen nachgeschaut und es gibt welche wo eine X,01 auch als X,00 dargestellt wird. :wink: