Numerisches Format
Wenn ein Text als numerischer Datentyp geparst wird oder ein numerischer Datentyp zu einem Text formatiert werden soll, muss ein Formatmuster angegeben werden.
Das Parsen und Formatieren ist lokalabhängig.
In CloudConnect wird das Java-Dezimalformat verwendet.
Tabelle 28.8. Numerische Formatmuster Syntax
Symbol | Ort | Lokalisiert? | Bedeutung |
---|---|---|---|
# | Nummer | Ja | Ziffer, Null wird als abwesend angezeigt |
0 | Zahl | Ja | Ziffer |
. | Zahl | Ja | Dezimaltrennzeichen oder Währungsdezimaltrennzeichen |
– | Zahl | Ja | Minuszeichen |
, | Zahl | Ja | Gruppentrennzeichen |
E | Zahl | Ja | Trennt Mantisse und Exponent in wissenschaftlicher Notation. Muss nicht im Präfix oder Suffix angegeben werden. |
; | Teilmustergrenze | Ja | Trennt positive und negative Teilmuster |
% | Präfix oder Suffix | Ja | Multipliziert mit 100 und zeigt als Prozentsatz |
‰ (\u2030) | Präfix oder Suffix | Ja | Multipliziere mit 1000 und zeige als Promillewert |
¤ (\u00A4) | Präfix oder Suffix | Nein | Währungszeichen, wird durch das Währungssymbol ersetzt. Falls verdoppelt, ersetzt durch internationales Währungssymbol. Wenn in einem Muster vorhanden, wird das monetäre Dezimaltrennzeichen anstelle des Dezimaltrennzeichens verwendet. |
‚ | Präfix oder Suffix | Nein | Wird verwendet, um Sonderzeichen in einem Präfix oder Suffix in Anführungszeichen zu setzen, z. B. „‚#’#“ formatiert 123 zu „#123“. Um selbst ein einzelnes Anführungszeichen zu erzeugen, verwenden Sie zwei hintereinander: „# o“clock“. |
-
Beide, Präfix und Suffix, sind Unicode-Zeichen von \u0000 bis \uFFFD, einschließlich der Ränder, aber ohne Sonderzeichen.
Das Formatmuster setzt sich aus Untermustern, Präfixen, Suffixen usw. zusammen, wie in der folgenden Tabelle dargestellt:
Es folgt eine Erläuterung dieser Symbole:
Tabelle 28.10. Verwendete Notation
Notation | Beschreibung |
---|---|
X* | 0 oder mehr Instanzen von X |
(X | Y) | entweder X oder Y |
X..Y | jedes Zeichen von X bis Y, einschließlich |
S – T | Zeichen in S, mit Ausnahme der Zeichen in T |
{X} | X ist optional |
Denken Sie auch daran, dass die Formatierung lokalabhängig ist. Siehe die folgende Tabelle, in der die Ergebnisse für verschiedene Sprachumgebungen unterschiedlich sind:
Tabelle 28.11. Ortsabhängige Formatierung
Muster | Lokalisierung | Ergebnis |
---|---|---|
###,###.### | de.US | 123,456.789 |
###,###.### | de.DE | 123.456,789 |
###,###.### | fr.FR | 123 456,789 |
Für einen tieferen Einblick in den Umgang mit Zahlen, konsultieren Sie die offizielle Java Dokumentation.
Wissenschaftliche Notation
Zahlen in wissenschaftlicher Notation werden als das Produkt aus einer Mantisse und einer Zehnerpotenz ausgedrückt.
Zum Beispiel kann 1234
als 1.234 x 103
ausgedrückt werden.
Die Mantisse liegt oft im Bereich 1.0 <= x < 10.0
, muss es aber nicht.
Numerische Datentypen können nur über ein Muster angewiesen werden, wissenschaftliche Notation zu formatieren und zu analysieren. In einem Muster zeigt das Exponentenzeichen unmittelbar gefolgt von einem oder mehreren Ziffernzeichen die wissenschaftliche Notation an.
Beispiel: „0.###E0“ formatiert die Zahl 1234 als „1.234E3“.
Beispiele für numerische Muster und Ergebnisse folgen:
Legende:
1): Die maximale Anzahl ganzer Ziffern ist 3, die minimale Anzahl ganzer Ziffern ist 1, das Maximum ist größer als das Minimum, daher ist der Exponent in jedem der Fälle ein Vielfaches von drei (maximale Anzahl ganzer Ziffern).
2): Die maximale Anzahl ganzer Ziffern ist 2, die minimale Anzahl ganzer Ziffern ist 1, das Maximum ist größer als das Minimum, daher ist der Exponent in jedem der Fälle ein Vielfaches von zwei (maximale Anzahl ganzer Ziffern).
3): Maximale Anzahl ganzer Ziffern ist 2, minimale Anzahl ganzer Ziffern ist 2, das Maximum ist gleich dem Minimum, die minimale Anzahl ganzer Ziffern wird durch Anpassung des Exponenten erreicht.
4): Maximale Anzahl ganzer Ziffern ist 3, maximale Anzahl gebrochener Ziffern ist 2, die Anzahl signifikanter Ziffern ist die Summe der maximalen Anzahl ganzer Ziffern und der maximalen Anzahl gebrochener Ziffern, daher ist die Anzahl signifikanter Ziffern wie gezeigt (5 Ziffern).
Binäre Formate
Die folgende Tabelle enthält eine Liste der verfügbaren Formate:
Tabelle 28.13. Verfügbare Binärformate
Typ | Name | Format | Länge |
---|---|---|---|
ganzzahlig | BIG_ENDIAN |
Zwei-Komplement, big-endian | Variable |
LITTLE_ENDIAN |
Zweierkomplement, little-endian | ||
PACKED_DECIMAL |
gepackte Dezimalzahl | ||
Fließkomma | DOUBLE_BIG_ENDIAN |
IEEE 754, big-endian | 8 Bytes |
DOUBLE_LITTLE_ENDIAN |
IEEE 754, little-endian | ||
FLOAT_BIG_ENDIAN |
IEEE 754, big-endian | 4 Bytes | |
FLOAT_LITTLE_ENDIAN |
IEEE 754, little-endian |
Die Gleitkommaformate können mit den Datentypennumeric
und decimal
verwendet werden.Die Ganzzahlformate können mit den Datentypen integer
und long
verwendet werden. Die Ausnahme von dieser Regel ist der Datentypdecimal
, der auch Ganzzahlformate (BIG_ENDIAN
,LITTLE_ENDIAN
undPACKED_DECIMAL
) unterstützt. Wenn ein Integer-Format mit dem Datentyp decimal
verwendet wird, wird der implizite Dezimalpunkt entsprechend dem Attribut Skala gesetzt. Wenn der gespeicherte Wert z. B. 123456789 ist und Skala auf 3 gesetzt ist, lautet der Wert des Feldes 123456.789.
Um ein Binärformat zu verwenden, erstellen Sie ein Metadatenfeld mit einem der unterstützten Datentypen und setzen das Attribut Format auf den Namen des Formats mit dem Präfix "BINARY:"
, z. B. Um das Format PACKED_DECIMAL
zu verwenden, erstellen Sie ein Dezimalfeld und setzen dessen Format auf"BINARY:PACKED_DECIMAL"
, indem Sie es aus der Liste der verfügbaren Formate auswählen.
Für die Formate mit fester Länge (double und float) muss auch das AttributSize entsprechend gesetzt werden.
Zurzeit können binäre Datenformate nur von ComplexDataReader und dem veralteten FixLenDataReader verarbeitet werden.