Was sind die Parameter für die Nummer Rohr - Winkel 2

123

Ich habe die Zahlenpfeife unten verwendet, um Zahlen auf zwei Dezimalstellen zu beschränken.

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

Ich habe mich gefragt, was die Logik hinter '1.2-2' ist. Ich habe damit herumgespielt und versucht, eine Pipe zu erreichen, die auf null Dezimalstellen filtert, aber ohne Erfolg.

rushtoni88
quelle
2
Dies funktioniert nur mit Angular 2
Lord Darth Vader

Antworten:

251

Der Parameter hat folgende Syntax:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

Ihr Beispiel für '1.2-2'Mittel bedeutet also:

  • Vor dem Dezimalpunkt wird mindestens eine Ziffer angezeigt
  • Nach dem Dezimalpunkt werden mindestens 2 Stellen angezeigt
  • Aber nicht mehr als 2 Ziffern
Rinukkusu
quelle
31
Dies rundet leider auch die Zahl ab, und noch schlimmer, es gibt kein Wort darüber in der Dokumentation
phil294
1
@Blauhirn Ich habe das gleiche Problem, gab es eine einfache Lösung oder sollte ich meine eigene Pipe erstellen?
S. Robijns
3
@ phil294 Ich weiß, dass Ihr Kommentar alt ist, aber jetzt gibt es eine Beschreibung zum Runden von Zahlen. angle.io/api/common/DecimalPipe
Cristiano Bombazar
7

Von dem DOCS

Formatiert eine Zahl als Text. Gruppengröße und Trennzeichen sowie andere länderspezifische Konfigurationen basieren auf dem aktiven Gebietsschema.

SYNTAX:

number_expression | number[:digitInfo[:locale]]

Wo expressionist eine Nummer:

digitInfo ist eine Zeichenfolge mit folgendem Format:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
  • minIntegerDigits ist die Mindestanzahl der zu verwendenden Ganzzahlziffern. Der Standardwert ist 1
  • minFractionDigits ist die Mindestanzahl von Ziffern
  • nach der Fraktion. Der Standardwert ist 0. maxFractionDigits ist die maximale Anzahl von Stellen nach dem Bruch. Der Standardwert ist 3.
  • Das Gebietsschema ist eine Zeichenfolge, die das zu verwendende Gebietsschema definiert (verwendet standardmäßig die aktuelle LOCALE_ID).

DEMO

Sajeetharan
quelle
6
  1. In Bezug auf Ihre erste Frage. Das Rohr funktioniert wie folgt:

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

    • minIntegerDigits: Minimale Anzahl von Ganzzahlziffern, die vor dem Dezimalpunkt angezeigt werden sollen, standardmäßig auf 1 gesetzt
    • minFractionDigits: Minimale Anzahl von Ganzzahlen, die nach dem Dezimalpunkt angezeigt werden sollen

    • maxFractionDigits: Maximale Anzahl von Ganzzahlziffern, die nach dem Dezimalpunkt angezeigt werden sollen

2. Bezüglich Ihrer zweiten Frage filtern Sie wie folgt auf null Dezimalstellen:

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

Weitere Informationen finden Sie im folgenden Blog

Mwiza
quelle
2

'1.0-0' gibt Ihnen null Dezimalstellen, dh keine Dezimalstellen. zB 500 $

Alchi Baucha
quelle
Ich versuche, eine Zahl wie 114.5 so zu formatieren, dass sie als 114 angezeigt wird, aber wenn ich '1.0-0' verwende, wird '115' angezeigt. Weiß jemand warum?
Karaja
1
Dies liegt daran, dass der Winkel den Wert rundet und 115 für 114,5 ergibt.
Alchi Baucha
2
Warum die Abstimmungen? Dies funktioniert und beantwortet die Frage, wie auf null Dezimalstellen gefiltert werden soll. Danke @alchibaucha hat mein Problem genau gelöst.
S ..