169 votes

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

J'ai utilisé le pipe 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 ces paramètres pour essayer d'obtenir un tuyau qui filtre jusqu'à zéro décimale, mais sans succès.

2 votes

4 votes

0 votes

325voto

rinukkusu Points 14217

Le paramètre a la syntaxe suivante :

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

Donc votre exemple de '1.2-2' signifie :

  • Un minimum d'un chiffre sera affiché avant le point décimal.
  • Il affichera au moins 2 chiffres après le point décimal.
  • Mais pas plus de 2 chiffres

39 votes

Malheureusement, cela permet également d'arrondir le nombre, et pire encore, il n'y a rien à ce sujet dans la documentation.

2 votes

@Blauhirn J'ai le même problème, y a-t-il une solution facile ou dois-je créer mon propre tuyau ?

6 votes

@phil294 Je sais que votre commentaire est ancien, mais, maintenant il y a une description sur l'arrondi des nombres. angular.io/api/common/DecimalPipe

11voto

Mwizak Points 1543
  1. En ce qui concerne votre première question, le tuyau fonctionne comme suit :

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

    • minIntegerDigits : Nombre minimum de chiffres entiers à afficher avant le point décimal, fixé à 1 par défaut.

    • minFractionDigits : Nombre minimum de chiffres entiers à afficher après le point décimal

    • maxFractionDigits : Nombre maximum de chiffres entiers à afficher après le point décimal

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

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

Pour en savoir plus, consultez les documents suivants blog

9voto

Sajeetharan Points 108195

De la DOCS

Formate un nombre en tant que texte. La taille des groupes, le séparateur et les autres configurations spécifiques à la locale sont basées sur la locale active.

SYNTAX :

number_expression | number[:digitInfo[:locale]]

expression est un nombre :

digitInfo est une chaîne de caractères dont le format est le suivant :

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
  • minIntegerDigits est le nombre minimum de chiffres de l'entier à utiliser (1 par défaut).
  • minFractionDigits est le nombre minimum de chiffres.
  • après la fraction. La valeur par défaut est 0. maxFractionDigits est le nombre maximum de chiffres. nombre de chiffres après la fraction. La valeur par défaut est 3.
  • locale est une chaîne définissant la locale à utiliser (utilise la LOCALE_ID actuelle par défaut).

DEMO

2voto

alchi baucha Points 164

1.0-0' vous donnera zéro décimale, c'est-à-dire aucune décimale. Par exemple, 500 $.

0 votes

J'essaie de formater un nombre comme 114.5 pour qu'il s'affiche comme 114, mais quand j'utilise '1.0-0', il affiche '115', quelqu'un sait pourquoi ?

1 votes

C'est parce que l'angulaire arrondit la valeur et donne 115 pour 114,5.

2 votes

Pourquoi les downvotes ? 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.

0voto

yael kfir Points 27

0.0-0' vous donnera un nombre rond formaté avec ','.

100000.2 -> 100,000

très cool

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X