Spis treści

# Funkcja Format

Konwertuje wyrażenie numeryczne na ciąg, a następnie formuje go zgodnie z określonym formatem.

### Składnia:

    Format(expression [, format As String]) As String

### Parametry:

expression: Wyrażenie numeryczne, które chcesz przekonwertować na sformatowany ciąg.

format: ciąg określający kod formatu dla liczby. Jeśli format zostanie pominięty, funkcja Format działa jak funkcja LibreOffice Basic Str().

### Typ zwracany:

Ciąg tekstowy.

## Kody formatowania

W BASIC kod format można podzielić na trzy sekcje rozdzielone średnikami. Pierwsza część definiuje format dla wartości dodatnich, druga część dla wartości ujemnych, a trzecia część dla zera. Jeśli określisz tylko jeden kod format, będzie on stosowany do wszystkich liczb.

Ustawienia regionalne dotyczące formatowania liczb, dat i walut w programie LibreOffice Basic można zmienić w następującej ścieżce: LibreOffice - Preferencje Narzędzia - Opcje - Języki i ustawienia regionalne - Ogólne. W kodach formatowania Basic kropka dziesiętna (.) jest zawsze używana jako symbol zastępczy separatora dziesiętnego zdefiniowanego w ustawieniach regionalnych i będzie zastępowana przez odpowiadający jej znak.

To samo dotyczy regionalnych ustawień formatu daty, godziny i waluty. Kod formatowania Basic jest interpretowany i wyświetlany zgodnie z ustawieniami regionalnymi.

Poniższa lista opisuje kody, których można użyć do formatowania wyrażenia numerycznego:

Kod | Opis
--- | ---
0 | Jeżeli expression ma cyfrę na pozycji 0 w kodzie format, cyfra ta jest wyświetlana, w przeciwnym razie wyświetlane jest zero. Jeśli expression ma mniej cyfr niż liczba zer w kodzie format (po obu stronach dziesiętnych), wyświetlane są zera wiodące lub spuszczające. Jeśli expression ma więcej cyfr po lewej stronie separatora dziesiętnego niż liczbę zer w kodzie format, dodatkowe cyfry są wyświetlane bez formatowania. Miejsca dziesiętne w expression są zaokrąglone zgodnie z liczbą zer, które pojawiają się po dziesiętnym separatorze w kodzie format.
# | Jeżeli expression zawiera cyfrę na pozycji symbolu zastępczego # w kodzie format, cyfra ta jest wyświetlana. W przeciwnym razie w tej pozycji nie jest wyświetlane nic. Ten symbol działa jak 0, z wyjątkiem tego, że zera wiodące lub spuszczające nie są wyświetlane, jeśli w kodzie format jest więcej # znaków niż cyfr w expression. Wyświetlane są tylko odpowiednie cyfry expression.
. (period) | Symbol zastępczy dziesiętny określa liczbę miejsc dziesiętnych po lewej i prawej stronie separatora dziesiętnego. Jeśli kod format zawiera tylko symbole zastępcze # po lewej stronie tego symbolu, liczby mniejsze niż 1 zaczynają się od separatora dziesiętnego. Aby zawsze wyświetlać wiodące zero z liczbami ułamkowymi, użyj 0 jako symbol zastępczy dla pierwszej cyfry po lewej stronie separatora dziesiętnego. Użycie kropki jako separatora tysięcy i przecinka dziesiętnego zależy od ustawień regionalnych. W przypadku wprowadzania liczb bezpośrednio w kodzie źródłowym Basic jako separatora dziesiętnego należy zawsze używać kropki. Rzeczywisty znak wyświetlany jako separator dziesiętny zależy od formatu liczb w ustawieniach systemowych.
% | Mnoży expression przez 100 i wstawia znak procentu (%) tam, gdzie expression pojawia się w kodzie format.
E- E+ e- e+ | Jeśli kod format zawiera co najmniej jeden symbol zastępczy cyfry (0 lub #) po prawej stronie symbolu E-, E+, e- lub e+, expression jest formatowany w formacie naukowym lub wykładniczym. Litera E lub e jest wstawiana między liczbą a wykładnikiem. Liczba symboli zastępczych cyfr po prawej stronie symbolu określa liczbę cyfr w wykładniku. W przypadku zastosowania symboli E-, E+, e-, e+, jeśli wykładnik jest ujemny, bezpośrednio przez wykładnikiem jest wyświetlany znak minus. Jeśli wykładnik jest dodatni, znak plus jest wyświetlany przez wykładnikiem tylko w przypadku zastosowania symboli E+ lub e+.
- + $ ( ) space | : Znak plus (+), minus (-), dolar ($), spacja lub nawias wpisany bezpośrednio w kodzie formatu jest wyświetlany jako znak dosłowny.
\ | Aby wyświetlić znaki inne niż wymienione powyżej, należy poprzedzić je odwróconą kreską ukośną (\) lub umieścić w cudzysłowie (" "). Ukośnik odwrotny wyświetla następny znak w kodzie format. Znaki w kodzie format, które mają szczególne znaczenie, mogą być wyświetlane jako literalne znaki, jeśli są poprzedzone ukośnikiem wstecznym. Sam ukośnik wsteczny nie jest wyświetlany, chyba że wprowadzisz podwójny ukośnik wsteczny (\\) w kodzie formatu. Znaki wymagające poprzedzenia ich odwróconą kreską ukośną w kodzie formatu to: literały znaków formatowania daty i godziny (a, c, d, h, m, n, p, q, s, t, w, y, /, :), znaki formatowania liczb (#, 0, %, E, e, przecinek, kropka) oraz znaki formatowania ciągów (@, &, <, >, !).

## Wstępnie zdefiniowane formaty

Możesz także użyć następujących predefiniowanych formatów liczb. Z wyjątkiem "General Number", wszystkie predefiniowane kody formatu zwracają liczbę jako liczbę dziesiętną z dwoma miejscami dziesiętnymi.

W przypadku korzystania ze wstępnie zdefiniowanych formatów nazwa formatu musi zostać ujęta w cudzysłów.

Kod | Opis
--- | ---
"<" | Zamień wyrażenie na małe litery
">" | Zamień wyrażenie na duże litery
"c" or "General Date" | Zwraca numeryczne wyrażenie w krótkim formacie daty, opcjonalnie z „H:MM:SS AM/PM”. Jeśli wyrażenie jest ciągiem, zwraca ciąg.
"n" | Zwraca minutę wyrażenia liczbowego, za pomocą 1 lub 2 cyfr.
"nn" | Zwraca minutę wyrażenia liczbowego z dwiema cyframi.
"w" | Zwraca dzień tygodnia wyrażenia liczbowego. 1 oznacza niedzielę, a 7 oznacza sobotę.
"General Number" | Zwraca wyrażenie liczbowe składające się z 12 cyfr (0.#############).
"Currency" | Zwraca wyrażenie liczbowe w walucie danych ustawień regionalnych.
"Fixed" | Zwraca wyrażenie liczbowe z 2 miejscami po przecinku (0,00).
"Standard" | Zwraca wyrażenie liczbowe z separatorami tysięcy i 2 miejscami po przecinku (@0,00).
"Percent" | Zwraca wyrażenie liczbowe jako wartość procentową (0,00%).
"Scientific" | Zwraca wyrażenie liczbowe w notacji naukowej (#,00E+00);
"Yes/No" | Zwraca „Yes” jeśli numeryczne wyrażenie nie jest równe zero, w przeciwnym wypadku zwraca „No”. „Yes” i „No” są zlokalizowane.
"True/False" | Zwraca „True”, jeśli numeryczne wyrażenie nie jest równe zero, w przeciwnym wypadku zwraca „False”. „True” i „False” są zlokalizowane.
"On/Off" | Zwraca „On”, jeśli numeryczne wyrażenie nie jest równe zero, w przeciwnym wypadku zwraca „Off”. „On” i „Off” są zlokalizowane.
"Long Date" or "dddddd" | Zwraca wyrażenie liczbowe w formacie długiej daty systemowej, zależnie od ustawień regionalnych.
"Medium Date" | Zwraca wyrażenie liczbowe w formacie daty DD-MMM-RR i zależy od ustawień regionalnych.
"Short Date" or "ddddd" | Zwraca wyrażenie liczbowe w krótkim formacie daty systemowej i zależy od ustawień regionalnych.
"Long Time" or "ttttt" | Zwraca wyrażenie liczbowe w długim formacie czasu systemowego i zależy od ustawień regionalnych („G:MM:SS AM/PM”).
"Medium Time" | Zwraca wyrażenie liczbowe w formacie czasu średniego systemu i zależy od ustawień regionalnych (GG:MM AM/PM)
"Short Time" | Zwraca wyrażenie liczbowe w krótkim formacie systemowym i zależy od ustawień regionalnych (GG:MM).

### Kody błędów:

5 Nieprawidłowe wywołanie procedury

### Przykład:

    Sub ExampleFormat
        MsgBox Format(6328.2, "##,##0.00")
        ' w przypadku wprowadzania liczb w kodzie źródłowym Basic, jako separatora dziesiętnego należy zawsze używać kropki.
        ' w przypadku angielskich ustawień regionalnych niniejszy przykład powoduje wyświetlenie liczby 6,328.20, natomiast w przypadku niemieckich ustawień regionalnych 6.328,20.
    msgbox Format("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", "<") ' zwraca abcdefghijklmnopqrstuvwxyz1234567890, cyfry pozostają niezmienione.
    msgbox Format("abcdefghijklmnopqrstuvwxyz1234567890", ">") ' zwraca ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890, cyfry pozostają niezmienione.
    msgBox Format(12345.6,"c") ' zwraca liczbę w formacie daty 18/10/33 2:24:00 PM w ustawieniach regionalnych języka niemieckiego.
    msgBox Format(12345.6,"General Date") ' Tak samo jak "c".
    msgbox format(12345.004,"n") ' zwraca 5
    msgbox format(12345.004,"nn") ' zwraca 05
    msgbox format(12345.6,"w") ' zwraca 4 (środa).
    msgbox format(log(123),"General Number") ' zwraca 4,812184355372 w ustawieniach regionalnych języka niemieckiego
    msgbox format(123456.7890,"Fixed") ' 123456.79
    msgbox format(123456.1234,"Fixed") ' 123456.12
    msgbox format(123456.7890,"Standard") '123,456.79
    msgbox format(123456.1234,"Standard") '123,456.12
    msgbox format(12.3456,"Percent") ' 1234.56%
    msgbox format(0.123456,"Percent") '12.35%
    msgbox format(123,"Yes/No") ' zwraca zlokalizowane "Yes"
    msgbox format(0,"Yes/No") ' zwraca zlokalizowane "No"
    msgbox format(-1,"True/False") ' zwraca zlokalizowane "True"
    msgbox format(123,"On/Off") ' zwraca zlokalizowane "On"
    msgbox format(45756.73,"Long Date") ' zwraca w środę 9 kwietnia 2025 r. w ustawieniach regionalnych użytkownika
    End Sub

Tematy pokrewne

Kody formatu liczb

Funkcje łańcuchowe