Jakie są parametry numeru Pipe - Angular 2


123

Użyłem pionowej kreski poniżej, aby ograniczyć liczby do dwóch miejsc po przecinku.

{{ exampleNumber | number : '1.2-2' }}

Zastanawiałem się, jaka jest logika stojąca za „1.2-2”? Bawiłem się nimi, próbując uzyskać potok, który filtruje do zera miejsc po przecinku, ale bezskutecznie.





2
Działa to tylko z Angular 2
Lord Darth Vader

Odpowiedzi:


251

Parametr ma następującą składnię:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

Więc twój przykład '1.2-2'oznacza:

  • Przed przecinkiem zostanie wyświetlona co najmniej 1 cyfra
  • Wyświetli co najmniej 2 cyfry po przecinku
  • Ale nie więcej niż 2 cyfry

31
To również niestety zaokrągla liczbę, a co gorsza, w dokumentacji nie ma o tym ani słowa
phil294

1
@Blauhirn Mam ten sam problem, czy było łatwe rozwiązanie, czy powinienem utworzyć własną rurę?
S. Robijns

3
@ phil294 Wiem, że Twój komentarz jest stary, ale teraz jest opis dotyczący zaokrąglania liczb. angular.io/api/common/DecimalPipe
Cristiano Bombazar

7

Z DOCS

Formatuje liczbę jako tekst. Określanie rozmiaru i separatora grup oraz inne konfiguracje specyficzne dla ustawień regionalnych są oparte na aktywnych ustawieniach regionalnych.

SKŁADNIA:

number_expression | number[:digitInfo[:locale]]

gdzie expressionjest liczba:

digitInfo to ciąg o następującym formacie:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
  • minIntegerDigits to minimalna liczba cyfr całkowitych do użycia. domyślnie 1
  • minFractionDigits to minimalna liczba cyfr
  • po frakcji. Domyślnie 0. maxFractionDigits to maksymalna liczba cyfr po ułamku. Domyślnie 3.
  • locale to ciąg określający język do użycia (domyślnie używa bieżącego LOCALE_ID)

DEMO


7
  1. Jeśli chodzi o twoje pierwsze pytanie, rura działa w następujący sposób:

    numberValue | number: {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

    • minIntegerDigits: Minimalna liczba cyfr całkowitych do wyświetlenia przed przecinkiem, domyślnie ustawiona na 1
    • minFractionDigits: Minimalna liczba cyfr całkowitych wyświetlanych po przecinku

    • maxFractionDigits: Maksymalna liczba cyfr całkowitych wyświetlanych po przecinku

Jeśli chodzi o drugie pytanie, przefiltruj do zera miejsc po przecinku w następujący sposób:

{{ numberValue | number: '1.0-0' }}

Więcej informacji znajdziesz na poniższym blogu


2

„1.0-0” daje zero miejsc po przecinku, czyli brak miejsc po przecinku. np. 500 USD


Próbuję sformatować liczbę taką jak 114,5, aby była wyświetlana jako 114, ale kiedy używam „1,0-0”, wyświetla „115”, ktoś wie dlaczego?
Karaja

1
Dzieje się tak, ponieważ angular zaokrągla wartość i daje 115 dla 114,5.
alchi baucha

2
Dlaczego głosy przeciw? to działa i odpowiada na pytanie, jak filtrować do zera miejsc po przecinku. Dzięki @alchibaucha dokładnie rozwiązał mój problem.
S ..
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.