Best practice: Multiplizieren zweier Zahlen
-
Headhunter schrieb:
Hat denn einer ein Beispiel, wie man zuverlässig mit Finanzwerten arbeitet?
Eine Möglichkeit wäre, mit Ganzzahlen zu rechnen. ...also mit long. ...wenn Du es "richtig" machen willst, wirst Du aber nicht daran vorbeikommen, einen eigenen Datentyp dafür zu erstellen, der vielleicht intern long nutzt, aber nach außen hin halt alle möglichen Methoden anbietet, die so ein Datentyp halt haben sollte. Dieser Datentyp würde dann vermutlich auch ein Feld enthalten, das die Währung beschreibt.
-
Headhunter schrieb:
Hat denn einer ein Beispiel, wie man zuverlässig mit Finanzwerten arbeitet?
Dazu gibt es die beiden Klassen BigDecimal bzw. BigInteger.
MfG,
Hilefoks
-
Hilefoks schrieb:
Headhunter schrieb:
Hat denn einer ein Beispiel, wie man zuverlässig mit Finanzwerten arbeitet?
Dazu gibt es die beiden Klassen BigDecimal bzw. BigInteger.
Hi.
Die sind dazu eben nicht da.
-
Sondern?
-
Mr. N schrieb:
Sondern?
Lesefaul? Gregor hat doch schon seinen Vorschlag gepostet.
MfG SideWinder
-
-
Danke für den Link, hilft mir weiter!
Was ist bei Java echt am meisten vermisse ist die .NET Standardbibliothek und die C# Sprachfeatures. Aber man kann ja nicht immer alles haben...
-
SideWinder schrieb:
Mr. N schrieb:
Sondern?
Lesefaul? Gregor hat doch schon seinen Vorschlag gepostet.
Ich hätte die Frage so verstanden, dass er wissen will, für was die dann sind und wieso nicht dafür.
-
Was spricht eigentlich gegen (Edit: Naja, ist eigentlich eh Gregors Vorschlag...):
class MoneyAmount { /** Currency */ private final Currency currency; /** Amount of money multiplied by 100 */ private final long amount; ... public long getAmount() { return amount; } public long getCents() { return amount % 100; } public long getGibtsDafürÜberhauptEinWort() { return amout - getCents(); } }
MfG SideWinder
-
@hmm??: Ich hab die bisher nur bei der Implementierung von verschiedenen kryptografischen Algorithmen in der Schule benutzt. Die Schnittstelle deutet darauf hin, dass sie darauf auch ausgelegt sind.
MfG SideWinder
-
Faktor 100 ist wenig international. Das sollte man flexibler lösen.