Kwoty i separatory - wartości testowe

Kwoty zapisane tak, jak zapisują je ludzie i arkusze, i tam, gdzie kończy się precyzja. 12 wartości, każda z tym, co psuje, i z tym, co zamiast tego robi poprawna aplikacja.

currency-separators wersja 1.0, aktualizacja 2026-10-14 CC-BY-4.0

Wpisuj je po jednej skrótem AltShiftN w palecie albo weź wszystkie do skryptu poleceniem nkb emit currency-separators.

Pułapka zaokrąglenia 2,675

currency-separators/rounding-2675
2,675 2,675
  • 5 grafemów
  • 5 punktów kodowych
  • 5 bajtów
  • 5 jednostek UTF-16
Co psuje
Zaokrąglona do dwóch miejsc ta wartość idzie w dół, choć człowiek spodziewa się, że pójdzie w górę, bo jej zapis dwójkowy jest odrobinę mniejszy od dziesiętnego.
Co robi poprawna aplikacja
Zaokrąglana według reguły podanej w specyfikacji, stosowanej identycznie w interfejsie i w zapisie.

Pułapka zaokrąglenia 1,005

currency-separators/rounding-1005
1,005 1,005
  • 5 grafemów
  • 5 punktów kodowych
  • 5 bajtów
  • 5 jednostek UTF-16
Co psuje
Ta sama awaria przy innym rzędzie wielkości. Jedna z tych dwóch wartości łapie prawie każdą naiwną implementację zaokrąglania.
Co robi poprawna aplikacja
Tak samo jak wyżej.

Przecinek jako separator dziesiętny

currency-separators/comma-decimal-money
1234,56 1234,56
  • 7 grafemów
  • 7 punktów kodowych
  • 7 bajtów
  • 7 jednostek UTF-16
Co psuje
Separator dziesiętny używany lokalnie. Parser oczekujący kropki czyta go jako separator tysięcy i mnoży kwotę przez sto.
Co robi poprawna aplikacja
Przyjmowany w ustawieniach regionalnych, które go używają, z pokazaną oczekiwaną postacią.

Twarde spacje między tysiącami

currency-separators/nbsp-thousands
1000000,00 1\u00A0000\u00A0000,00
  • 2 spacje, które nie są zwykłymi spacjami
  • 12 grafemów
  • 12 punktów kodowych
  • 14 bajtów
  • 12 jednostek UTF-16
Co psuje
Kwoty skopiowane z raportu niosą twarde spacje jako separatory grup, których nie przyjmuje żaden parser liczb.
Co robi poprawna aplikacja
Separatory usuwane przed odczytem, także te niewidoczne.

Spacje między tysiącami

currency-separators/space-thousands
1000000,00 1 000 000,00
  • 12 grafemów
  • 12 punktów kodowych
  • 12 bajtów
  • 12 jednostek UTF-16
Co psuje
To samo ze zwykłymi spacjami. Taką postać daje większość lokalnego formatowania.
Co robi poprawna aplikacja
Przyjęte i znormalizowane.

Kwota ujemna w nawiasach

currency-separators/negative-parens
(1234,56) (1234,56)
  • 9 grafemów
  • 9 punktów kodowych
  • 9 bajtów
  • 9 jednostek UTF-16
Co psuje
Księgowy zapis kwot ujemnych. Odczytany jako tekst staje się dodatnią liczbą w nawiasach.
Co robi poprawna aplikacja
Odczytana jako ujemna albo odrzucona z pokazaną oczekiwaną postacią.

Trzy miejsca po przecinku

currency-separators/three-decimals
1234,567 1234,567
  • 8 grafemów
  • 8 punktów kodowych
  • 8 bajtów
  • 8 jednostek UTF-16
Co psuje
Więcej miejsc po przecinku, niż ma waluta. Ciche zaokrąglenie zmienia tu sumę faktury.
Co robi poprawna aplikacja
Odrzucona albo zaokrąglona, a zaokrąglenie pokazane przed zapisem.

Ujemne zero

currency-separators/negative-zero
-0,00 -0,00
  • 5 grafemów
  • 5 punktów kodowych
  • 5 bajtów
  • 5 jednostek UTF-16
Co psuje
Ujemne zero wyświetla się jak kwota ujemna, a w porównaniu równa się zeru. Raporty pokazują minus przy niczym.
Co robi poprawna aplikacja
Zamieniane na zero przy zapisie.

Kwota zero

currency-separators/zero-amount
0,00 0,00
  • 4 grafemy
  • 4 punkty kodowe
  • 4 bajty
  • 4 jednostki UTF-16
Co psuje
Zero to prawdziwa kwota, często mylona z pustym polem.
Co robi poprawna aplikacja
Zapisana i wyświetlana jako zero, różna od pustego pola.

Kwota z symbolem waluty

currency-separators/symbol-appended
1234,56zł 1234,56 zł
  • 10 grafemów
  • 10 punktów kodowych
  • 11 bajtów
  • 10 jednostek UTF-16
Co psuje
Kwota tak, jak wygląda w dokumencie, z symbolem waluty. Pole liczbowe odrzuca ją w całości.
Co robi poprawna aplikacja
Symbol usuwany przy wprowadzaniu albo pokazana oczekiwana postać.

Apostrof między tysiącami

currency-separators/apostrophe-thousands
1'234.56 1'234.56
  • 8 grafemów
  • 8 punktów kodowych
  • 8 bajtów
  • 8 jednostek UTF-16
Co psuje
Separator grup używany w niektórych ustawieniach regionalnych. Nieznajomy, a całkowicie poprawny.
Co robi poprawna aplikacja
Przyjmowany tam, gdzie te ustawienia regionalne są obsługiwane, albo odrzucany z oczekiwaną postacią.

Kwota szersza niż typ pieniężny

currency-separators/huge-amount
999999999999,99 999999999999,99
  • 15 grafemów
  • 15 punktów kodowych
  • 15 bajtów
  • 15 jednostek UTF-16
Co psuje
Kwota szersza niż typ używany dla pieniędzy. Przepełnienie daje tu ujemną sumę.
Co robi poprawna aplikacja
Odrzucona z podanym limitem, zanim trafi do jakiejkolwiek sumy.