Format numeryczny
Gdy tekst jest przetwarzany jako dowolny numeryczny typ danych lub dowolny numeryczny typ danych powinien być sformatowany do tekstu, należy określić wzorzec formatu.
Parsowanie i formatowanie jest wrażliwe na locale.
W CloudConnect używany jest format dziesiętny Java.
Tabela 28.8. Składnia wzorca formatu numerycznego
Symbol | Lokalizacja | Localized? | Meaning |
---|---|---|---|
# | Liczba | Tak | Cyfra, zero pokazuje się jako nieobecne |
0 | Liczba | Tak | Digit |
. | Liczba | Tak | Decimal separator lub monetarny separator dziesiętny |
– | Liczba | Tak | Znak minus |
, | Liczba | Tak | Separator grupowania |
E | Liczba | Tak | Oddziela mantysę i wykładnik w notacji naukowej. Nie musi być cytowana w przedrostku lub przyrostku. |
; | Granica podwzorca | Tak | Oddziela dodatnie i ujemne podwzorce |
% | Przedrostek lub przyrostek | Tak | Mnoży się przez 100 i pokazuje jako procent |
‰ (\u2030) | Przedrostek lub przyrostek | Tak | Pomnożyć przez 1000 i pokazać jako wartość promila |
¤ (\u00A4) | Przedrostek lub przyrostek | Nie | Znak waluty, zastąpiony symbolem waluty. Jeśli podwojony, zastąpiony symbolem waluty międzynarodowej. Jeśli występuje we wzorcu, pieniężny separator dziesiętny jest używany zamiast separatora dziesiętnego. |
’ | Przedrostek lub przyrostek | Nie | Używany do cytowania znaków specjalnych w przedrostku lub przyrostku, na przykład „’#’#” formatuje 123 do „#123”. Aby utworzyć sam pojedynczy cytat, użyj dwóch z rzędu: „# o”clock”. |
-
Zarówno przedrostek, jak i przyrostek są znakami Unicode od \u0000 do \uFFFD, łącznie z marginesami, ale z wyłączeniem znaków specjalnych.
Wzorzec formatu składa się z podwzorców, przedrostków, przyrostków itd. w sposób przedstawiony w poniższej tabeli:
Objaśnienia tych symboli są następujące:
Tabela 28.10. Stosowana notacja
Notacja | Opis |
---|---|
X* | 0 lub więcej wystąpień X |
(X | Y) | albo X albo Y |
X..Y | każdy znak od X do Y, włącznie |
S – T | znaki w S, z wyjątkiem tych w T |
{X} | X jest opcjonalne |
Pamiętaj też, że formatowanie jest zależne od locale. Zobacz poniższą tabelę, w której wyniki są różne dla różnych języków lokalnych:
Tabela 28.11. Locale-Sensitive Formatting
Pattern | Locale | Result |
---|---|---|
##,###.### | en.US | 123,456,789 |
##,###.### | de.DE | 123.456,789 |
##,###.### | fr.FR | 123 456,789 |
Aby uzyskać głębsze spojrzenie na obsługę liczb, zapoznaj się z oficjalną dokumentacją Javy.
Notacja naukowa
Liczby w notacji naukowej są wyrażane jako iloczyn mantysy i potęgi dziesiętnej.
Na przykład 1234
można wyrazić jako 1.234 x 103
.
Mantysa jest często z zakresu 1.0 <= x < 10.0
, ale nie musi być.
Numeryczne typy danych mogą być instruowane do formatowania i parsowania notacji naukowej tylko poprzez wzorzec. We wzorcu znak wykładnika, po którym bezpośrednio następuje jeden lub więcej znaków cyfr, wskazuje na notację naukową.
Przykład: „0.###E0” formatuje liczbę 1234 jako „1.234E3”.
Przykłady wzorca numerycznego i wyniki są następujące:
Legenda:
1): Maksymalna liczba cyfr liczby całkowitej to 3, minimalna liczba cyfr liczby całkowitej to 1, maksimum jest większe od minimum, zatem wykładnik będzie wielokrotnością trzech (maksymalnej liczby cyfr liczby całkowitej) w każdym z przypadków.
2): Maksymalna liczba cyfr liczby całkowitej to 2, minimalna liczba cyfr liczby całkowitej to 1, maksimum jest większe od minimum, zatem wykładnik będzie iloczynem dwóch (maksymalna liczba cyfr liczby całkowitej) w każdym z przypadków.
3): Maksymalna liczba cyfr całkowitych wynosi 2, minimalna liczba cyfr całkowitych wynosi 2, maksimum jest równe minimum, minimalna liczba cyfr całkowitych zostanie osiągnięta przez dostosowanie wykładnika.
4): Maksymalna liczba cyfr całkowitych wynosi 3, maksymalna liczba cyfr ułamka wynosi 2, liczba cyfr znaczących jest sumą maksymalnej liczby cyfr całkowitych i maksymalnej liczby cyfr ułamka, zatem liczba cyfr znaczących jest taka, jak pokazano (5 cyfr).
Formaty binarne
W poniższej tabeli przedstawiono listę dostępnych formatów:
Tabela 28.13. Available Binary Formats
Type | Name | Format | Length |
---|---|---|---|
integer | BIG_ENDIAN |
two’s-complement, big-endian | zmienna |
LITTLE_ENDIAN |
dwa dopełnienia, little-endian | ||
PACKED_DECIMAL |
packeddecimal | ||
floating-point | DOUBLE_BIG_ENDIAN |
IEEE 754, big-endian | 8 bajtów |
DOUBLE_LITTLE_ENDIAN |
IEEE 754, little-endian | ||
FLOAT_BIG_ENDIAN |
IEEE 754, big-endian | 4 bajty | |
FLOAT_LITTLE_ENDIAN |
IEEE 754, little-endian |
Formaty zmiennoprzecinkowe mogą być używane z typami danychnumeric
i decimal
.Formaty liczb całkowitych mogą być używane z typami danych integer
ilong
. Wyjątkiem od tej reguły jest typ danychdecimal
, który również obsługuje formaty całkowite (BIG_ENDIAN
,LITTLE_ENDIAN
iPACKED_DECIMAL
). Gdy format liczb całkowitych jest używany z typem danych decimal
, niejawny punkt dziesiętny jest ustawiany zgodnie z atrybutem Scale. Na przykład, jeśli przechowywana wartość to 123456789 iScale jest ustawiona na 3, wartość pola będzie123456.789.
Aby użyć formatu binarnego, utwórz pole metadanych z jednym z obsługiwanych typów danych i ustaw atrybut Format na nazwę formatu poprzedzoną "BINARY:"
, np. aby użyć formatu PACKED_DECIMAL
, utwórz pole dziesiętne i ustaw jego Format na"BINARY:PACKED_DECIMAL"
, wybierając go z listy dostępnych formatów.
Dla formatów o stałej długości (double i float) również atrybutSize musi być odpowiednio ustawiony.
Obecnie binarne formaty danych mogą być obsługiwane tylko przez ComplexDataReader i przestarzały FixLenDataReader.
.