Rheinwerk Computing < openbook >


 
Inhaltsverzeichnis
Materialien zum Buch
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Arrays und ihre Anwendungen
5 Der Umgang mit Zeichen und Zeichenketten
6 Eigene Klassen schreiben
7 Objektorientierte Beziehungsfragen
8 Schnittstellen, Aufzählungen, versiegelte Klassen, Records
9 Ausnahmen müssen sein
10 Geschachtelte Typen
11 Besondere Typen der Java SE
12 Generics<T>
13 Lambda-Ausdrücke und funktionale Programmierung
14 Architektur, Design und angewandte Objektorientierung
15 Java Platform Module System
16 Die Klassenbibliothek
17 Einführung in die nebenläufige Programmierung
18 Einführung in Datenstrukturen und Algorithmen
19 Einführung in grafische Oberflächen
20 Einführung in Dateien und Datenströme
21 Einführung ins Datenbankmanagement mit JDBC
22 Bits und Bytes, Mathematisches und Geld
23 Testen mit JUnit
24 Die Werkzeuge des JDK
A Java SE-Module und Paketübersicht
Stichwortverzeichnis


Buch bestellen
Ihre Meinung?



Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenboom

Einführung, Ausbildung, Praxis
Buch: Java ist auch eine Insel


Java ist auch eine Insel

Pfeil 22 Bits und Bytes, Mathematisches und Geld
Pfeil 22.1 Bits und Bytes
Pfeil 22.1.1 Die Bit-Operatoren Komplement, Und, Oder und XOR
Pfeil 22.1.2 Repräsentation ganzer Zahlen in Java – das Zweierkomplement
Pfeil 22.1.3 Das binäre (Basis 2), oktale (Basis 8), hexadezimale (Basis 16) Stellenwertsystem
Pfeil 22.1.4 Auswirkung der Typumwandlung auf die Bit-Muster
Pfeil 22.1.5 Vorzeichenlos arbeiten
Pfeil 22.1.6 Die Verschiebeoperatoren
Pfeil 22.1.7 Ein Bit setzen, löschen, umdrehen und testen
Pfeil 22.1.8 Bit-Methoden der Integer- und Long-Klasse
Pfeil 22.2 Fließkomma-Arithmetik in Java
Pfeil 22.2.1 Spezialwerte für Unendlich, Null, NaN
Pfeil 22.2.2 Standardnotation und wissenschaftliche Notation bei Fließkommazahlen *
Pfeil 22.2.3 Mantisse und Exponent *
Pfeil 22.3 Die Eigenschaften der Klasse Math
Pfeil 22.3.1 Objektvariablen der Klasse Math
Pfeil 22.3.2 Absolutwerte und Vorzeichen
Pfeil 22.3.3 Maximum/Minimum
Pfeil 22.3.4 Runden von Werten
Pfeil 22.3.5 Rest der ganzzahligen Division *
Pfeil 22.3.6 Division mit Rundung in Richtung negativ unendlich, alternativer Restwert *
Pfeil 22.3.7 Multiply-Accumulate
Pfeil 22.3.8 Wurzel- und Exponentialmethoden
Pfeil 22.3.9 Der Logarithmus *
Pfeil 22.3.10 Winkelmethoden *
Pfeil 22.3.11 Zufallszahlen
Pfeil 22.4 Genauigkeit, Wertebereich eines Typs und Überlaufkontrolle *
Pfeil 22.4.1 Der größte und der kleinste Wert
Pfeil 22.4.2 Überlauf und alles ganz exakt
Pfeil 22.4.3 Was bitte macht eine ulp?
Pfeil 22.5 Zufallszahlen: Random, SecureRandom und SplittableRandom
Pfeil 22.5.1 Die Klasse Random
Pfeil 22.5.2 Random-Objekte mit dem Samen aufbauen
Pfeil 22.5.3 Einzelne Zufallszahlen erzeugen
Pfeil 22.5.4 Pseudo-Zufallszahlen in der Normalverteilung *
Pfeil 22.5.5 Strom von Zufallszahlen generieren *
Pfeil 22.5.6 Die Klasse SecureRandom *
Pfeil 22.5.7 SplittableRandom *
Pfeil 22.6 Große Zahlen *
Pfeil 22.6.1 Die Klasse BigInteger
Pfeil 22.6.2 Beispiel: ganz lange Fakultäten mit BigInteger
Pfeil 22.6.3 Große Fließkommazahlen mit BigDecimal
Pfeil 22.6.4 Mit MathContext komfortabel die Rechengenauigkeit setzen
Pfeil 22.6.5 Noch schneller rechnen durch mutable Implementierungen
Pfeil 22.7 Geld und Währung
Pfeil 22.7.1 Geldbeträge repräsentieren
Pfeil 22.7.2 ISO 4217
Pfeil 22.7.3 Währungen in Java repräsentieren
Pfeil 22.8 Zum Weiterlesen
 

Zum Seitenanfang

22.7    Geld und Währung Zur vorigen ÜberschriftZur nächsten Überschrift

Zahlen brauchen Kontext. Eine Zahl alleine ohne Einheit und ohne Kontext ist nicht verwertbar. Zahlen müssen immer etwas beschreiben, ein Alter, eine Baumhöhe, einen Umsatz – oder ganz allgemein »das Leben, das Universum und den ganzen Rest«.

 

Zum Seitenanfang

22.7.1    Geldbeträge repräsentieren Zur vorigen ÜberschriftZur nächsten Überschrift

Für Geldbeträge gibt es in Java keinen eigenen Datentyp, und so kann eine Speicherung je nach Programm immer anders aussehen. Folgende Datentypen bieten sich an:

  • BigDecimal: Seine Vorteile sind die präzisen Berechnungen und die wählbaren Rundungen.

  • ein Paar von int bzw. long: getrenntes Speichern der Vor- und Nachkommastellen

  • int oder long: Statt getrennter Euro- und Cent-Beträge wird alles in Cent gespeichert.

[»]  Hinweis

Die primitiven Datentypen double und float werden wegen ihrer Unfähigkeit, Vielfaches von 0,01 korrekt darzustellen, nicht empfohlen – Rundungsfehler treten schnell auf.

Money and Currency API

Im »JSR 354: Money and Currency API« wird ein eigener Datentyp für Geldbeträge definiert. Die Typen sollten eigentlich in die Java SE aufgenommen werden, doch dazu kam es bisher nicht. Dennoch sind die Typen interessant, und die Referenzimplementierung Moneta ist einen Blick wert: http://javamoney.github.io/ri.html. Neben Geldbeträgen erlaubt die kleine Bibliothek Umrechnungen, Formatierungen und eigene Währungen.

 

Zum Seitenanfang

22.7.2    ISO 4217 Zur vorigen ÜberschriftZur nächsten Überschrift

Währungen werden durch Währungscodes beschrieben, und die Definition findet sich in der Norm ISO 4217. Einige ISO-Codes sind:

ISO-4217-Code

Währung/Einheit

Land

EUR

Euro

Länder der Europäischen Währungsunion

CNY

Renminbi

China

DKK

Krone

Dänemark

GBP

Pfund

Vereinigtes Königreich

INR

Rupie

Indien

USD

Dollar

USA, Ecuador …

XAU

Feinunze Gold

Tabelle 22.15     Einige ISO-4217-Codes

Die Tabelle lässt am letzten Eintrag erkennen, dass es auch ISO-Codes für Edelmetalle und sogar Fonds gibt. Für jedes Kürzel gibt es ebenfalls einen numerischen Code.

 

Zum Seitenanfang

22.7.3    Währungen in Java repräsentieren Zur vorigen ÜberschriftZur nächsten Überschrift

Java repräsentiert Währungen durch die Klasse java.util.Currency. Exemplare der Klasse werden durch eine Fabrikmethode getInstance(String currencyCode) erfragt bzw. aus einer Aufzählung ausgewählt.

[zB]  Beispiel

Gib alle im System angemeldeten Währungen mit ein paar Informationen aus:

Currency.getAvailableCurrencies().stream()

.sorted( Comparator.comparing( Currency::getCurrencyCode ) )

.forEach( c -> System.out.printf( "%s, %s, %s, %s%n",

c.getCurrencyCode(), c.getSymbol(),

c.getDisplayName(), c.getNumericCode() ) );

Die Ausgabe beginnt so:

ADP, ADP, Andorranische Pesete, 20

AED, AED, VAE-Dirham, 784

AFA, AFA, Afghanische Afghani (1927–2002), 4

AFN, AFN, Afghanischer Afghani, 971

ALL, ALL, Albanischer Lek, 8

...

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java ist auch eine Insel Java ist auch eine Insel

Jetzt Buch bestellen


 Buchempfehlungen
Zum Rheinwerk-Shop: Captain CiaoCiao erobert Java

Captain CiaoCiao erobert Java




Zum Rheinwerk-Shop: Algorithmen in Java

Algorithmen in Java




Zum Rheinwerk-Shop: Spring Boot 3 und Spring Framework 6

Spring Boot 3 und Spring Framework 6




Zum Rheinwerk-Shop: Java SE 9 Standard-Bibliothek

Java SE 9 Standard-Bibliothek




 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2024

Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.

Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 

[Rheinwerk Computing]



Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de



Cookie-Einstellungen ändern