Quels sont les paramètres pour le nombre Pipe - Angulaire 2

123

J'ai utilisé le tube numérique ci-dessous pour limiter les nombres à deux décimales.

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

Je me demandais quelle était la logique derrière «1.2-2»? J'ai joué avec ceux-ci en essayant d'obtenir un tuyau qui filtre à zéro décimale, mais en vain.

rushtoni88
la source
2
Cela ne fonctionne qu'avec Angular 2
Lord Darth Vader

Réponses:

251

Le paramètre a cette syntaxe:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

Donc, votre exemple de '1.2-2'signifie:

  • Un minimum de 1 chiffre sera affiché avant la virgule décimale
  • Il affichera au moins 2 chiffres après la virgule décimale
  • Mais pas plus de 2 chiffres
rinukkusu
la source
31
Malheureusement, cela arrondit également le nombre, et pire encore, il n'y a aucun mot à ce sujet dans la documentation
phil294
1
@Blauhirn J'ai le même problème, y avait-il une solution simple ou devrais-je créer ma propre pipe?
S. Robijns
3
@ phil294 Je sais que votre commentaire est ancien, mais il existe maintenant une description de l'arrondissement des nombres. angular.io/api/common/DecimalPipe
Cristiano Bombazar
7

Du DOCS

Formate un nombre sous forme de texte. La taille et le séparateur de groupe et les autres configurations spécifiques aux paramètres régionaux sont basés sur les paramètres régionaux actifs.

SYNTAXE:

number_expression | number[:digitInfo[:locale]]

expressionest un nombre:

digitInfo est une chaîne au format suivant:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
  • minIntegerDigits est le nombre minimum de chiffres entiers à utiliser.
  • minFractionDigits est le nombre minimum de chiffres
  • après fraction. La valeur par défaut est 0. maxFractionDigits est le nombre maximum de chiffres après la fraction. La valeur par défaut est 3.
  • locale est une chaîne définissant les paramètres régionaux à utiliser (utilise le LOCALE_ID actuel par défaut)

DEMO

Sajeetharan
la source
7
  1. Concernant votre première question, le tuyau fonctionne comme suit:

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

    • minIntegerDigits: nombre minimum de chiffres entiers à afficher avant la virgule décimale, défini sur 1 par défaut
    • minFractionDigits: nombre minimum de chiffres entiers à afficher après la virgule décimale

    • maxFractionDigits: nombre maximum de chiffres entiers à afficher après la virgule décimale

2.En ce qui concerne votre deuxième question, filtrez à zéro décimale comme suit:

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

Pour plus d'informations, consultez le blog suivant

Mwiza
la source
2

«1.0-0» vous donnera zéro décimale, c'est-à-dire pas de décimale. par exemple 500 $

alchi baucha
la source
J'essaye de formater un nombre comme 114,5 pour l'afficher comme 114 mais quand j'utilise «1.0-0», il affiche «115», quelqu'un sait pourquoi?
Karaja
1
C'est parce que angulaire arrondit la valeur et donne 115 pour 114,5.
alchi baucha
2
Pourquoi les votes négatifs? cela fonctionne et répond à la question de savoir comment filtrer à zéro décimale. Merci @alchibaucha a résolu mon problème avec précision.
S ..