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: - 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

Prosimy o wsparcie!