数字Pipe - Angular 2的参数是什么

rus*_*i88 108 pipe decimal angular

我使用下面的数字管道将数字限制为两位小数.

{{ exampleNumber | number : '1.2-2' }}
Run Code Online (Sandbox Code Playgroud)

我想知道'1.2-2'背后的逻辑是什么?我玩过这些尝试实现一个过滤到零小数位的管道,但无济于事.

rin*_*usu 213

该参数具有以下语法:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

所以你的例子'1.2-2'意味着:

  • 小数点前至少显示1位数字
  • 它将在小数点后显示至少2位数
  • 但不超过2位数

  • 不幸的是,这也是数字的四舍五入,更糟糕的是,文档中没有任何关于它的信息 (27认同)
  • @phil294我知道你的评论已经过时了,但是,现在有关于舍入数字的描述。https://angular.io/api/common/DecimalPipe (5认同)
  • @Blauhirn我有同样的问题,有一个简单的解决办法还是我应该创建自己的管道? (2认同)

Mwi*_*iza 9

  1. 关于你的第一个问题。管道的工作原理如下:

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

    • minIntegerDigits:小数点前显示的最小整数位数,默认设置为1
    • minFractionDigits:小数点后显示的最小整数位数

    • maxFractionDigits:小数点后显示的最大整数位数

2.关于你的第二个问题,过滤到零小数位如下:

{{ numberValue | number: '1.0-0' }}
Run Code Online (Sandbox Code Playgroud)

如需进一步阅读,请查看以下博客


Saj*_*ran 5

来自 DOCS

将数字格式化为文本.组大小调整和分隔符以及其他特定于语言环境的配置基于活动区域设置.

句法:

number_expression | number[:digitInfo[:locale]]

数字在哪里expression:

digitInfo 是一个字符串,具有以下格式:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
Run Code Online (Sandbox Code Playgroud)
  • minIntegerDigits是要使用的最小整数位数.默认为1
  • minFractionDigits是最小位数
  • 分数后.默认为0. maxFractionDigits是分数后的最大位数.默认为3.
  • locale是一个定义要使用的语言环境的字符串(默认情况下使用当前的LOCALE_ID)

DEMO


yae*_*fir 5

'0.0-0' 将为您提供带有 ',' 的舍入格式数字

100000.2 -> 100,000

很酷