Какие параметры у номера Труба - Угловая 2


123

Я использовал вертикальную черту ниже, чтобы ограничить числа двумя десятичными знаками.

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

Мне было интересно, какова логика «1.2-2»? Я играл с ними, пытаясь создать канал, который фильтрует до нуля десятичных знаков, но безрезультатно.





2
Это работает только с Angular 2
Lord Darth Vader

Ответы:


251

Параметр имеет такой синтаксис:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

Итак, ваш пример '1.2-2'означает:

  • Перед десятичной запятой отображается минимум 1 цифра
  • После запятой будет отображаться не менее 2 цифр.
  • Но не более 2 цифр

31
Это также, к сожалению, округляет число, и, что еще хуже, в документации нет ни слова об этом
phil294,

1
@Blauhirn У меня та же проблема, было ли ее простое решение или мне нужно создать свой собственный канал?
С. Робейнс

3
@ phil294 Я знаю, что ваш комментарий старый, но теперь есть описание округления чисел. angular.io/api/common/DecimalPipe
Криштиану Бомбазар

7

Из DOCS

Форматирует число как текст. Размер и разделитель групп, а также другие конфигурации, зависящие от языкового стандарта, зависят от активного языкового стандарта.

СИНТАКСИС:

number_expression | number[:digitInfo[:locale]]

где expressionэто число:

digitInfo это строка следующего формата:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
  • minIntegerDigits - минимальное количество целых цифр для использования. По умолчанию 1.
  • minFractionDigits - минимальное количество цифр
  • после дроби. По умолчанию 0. maxFractionDigits - максимальное количество цифр после дроби. По умолчанию 3.
  • locale - это строка, определяющая используемый языковой стандарт (по умолчанию используется текущий LOCALE_ID)

DEMO


7
  1. Что касается вашего первого вопроса, труба работает следующим образом:

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

    • minIntegerDigits: минимальное количество целых цифр перед десятичной запятой, по умолчанию установлено значение 1.
    • minFractionDigits: минимальное количество целых цифр, отображаемых после десятичной точки.

    • maxFractionDigits: максимальное количество целых цифр, отображаемых после десятичной точки.

2. Что касается вашего второго вопроса, отфильтруйте до нуля десятичных знаков следующим образом:

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

Для дальнейшего чтения посетите следующий блог


2

«1.0-0» даст вам ноль десятичных знаков, т.е. без десятичных знаков. например $ 500


Я пытаюсь отформатировать число, например 114,5, чтобы отображалось как 114, но когда я использую «1.0-0», отображается «115», кто-нибудь знает почему?
Караджа

1
Это потому, что angular округляет значение и дает 115 вместо 114,5.
алчи бауча

2
Почему отрицательные голоса? это работает и отвечает на вопрос, как фильтровать до нуля десятичных знаков. Спасибо, @alchibaucha решила мою проблему точно.
С ..
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.