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.

rushtoni88
źródło
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
rinukkusu
źródło
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

Sajeetharan
źródło
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

Mwiza
źródło
2

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

alchi baucha
źródło
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 ..