编号 Pipe - Angular 2 的参数是啥
Posted
技术标签:
【中文标题】编号 Pipe - Angular 2 的参数是啥【英文标题】:What are the parameters for the number Pipe - Angular 2编号 Pipe - Angular 2 的参数是什么 【发布时间】:2016-11-23 11:54:15 【问题描述】:我使用下面的数字管道将数字限制为两位小数。
exampleNumber | number : '1.2-2'
我想知道“1.2-2”背后的逻辑是什么?我已经尝试过这些尝试实现过滤到零小数位但无济于事的管道。
【问题讨论】:
angular.io/docs/ts/latest/api/common/index/… angular.io/docs/ts/latest/api/common/index/… alligator.io/angular/built-in-pipes-angular 这只适用于 Angular 2 【参考方案1】:参数的语法如下:
minIntegerDigits.minFractionDigits-maxFractionDigits
所以你的'1.2-2'
的例子意味着:
【讨论】:
不幸的是,这也将数字四舍五入,更糟糕的是,文档中没有关于它的消息 @Blauhirn 我也有同样的问题,是否有简单的解决方法或者我应该创建自己的管道? @phil294 我知道你的评论很旧,但是,现在有关于四舍五入的描述。 angular.io/api/common/DecimalPipe 如果 minFractionDigits 大于 0,则会出错。小数 (2) 后的最小位数高于最大值 (0)。对于管道'DecimalPipe'【参考方案2】:关于你的第一个问题。管道的工作原理如下:
numberValue | number: minIntegerDigits.minFractionDigits-maxFractionDigits
minFractionDigits:小数点后显示的最小整数位数
maxFractionDigits:小数点后显示的最大整数位数
2.关于你的第二个问题,过滤到零小数位如下:
numberValue | number: '1.0-0'
如需进一步阅读,请查看以下blog
【讨论】:
【参考方案3】:来自DOCS
将数字格式化为文本。组大小和分隔符和其他 特定于区域设置的配置基于活动区域设置。
语法:
number_expression | number[:digitInfo[:locale]]
其中 expression
是一个数字:
digitInfo
是一个具有以下格式的字符串:
minIntegerDigits.minFractionDigits-maxFractionDigits
minIntegerDigits 是要使用的最小整数位数。默认为 1
minFractionDigits 是最小位数
在分数之后。默认为 0。 maxFractionDigits 是最大值
分数后的位数。默认为 3。
locale 是一个字符串,用于定义要使用的语言环境(默认使用当前的 LOCALE_ID)
DEMO
【讨论】:
【参考方案4】:'1.0-0'会给你 零小数位,即没有小数。 例如 500 美元
【讨论】:
我正在尝试将像 114.5 这样的数字格式化为显示为 114,但是当我使用“1.0-0”时,它显示“115”有人知道为什么吗? 这是因为 angular 将值四舍五入并为 114.5 提供 115。 为什么投反对票?这有效并回答了如何过滤到零小数位的问题。谢谢@alchibaucha 准确地解决了我的问题。【参考方案5】:'0.0-0' 将为您提供带有 ',' 的圆形格式数字
100000.2 -> 100,000
很酷
【讨论】:
以上是关于编号 Pipe - Angular 2 的参数是啥的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2+ - 检查 Pipe 是不是返回原始列表的空子集
Angular 2. *ngFor 的问题,当我使用 Pipe 时