【问题标题】: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 pipe decimal


【解决方案1】:

参数的语法如下:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

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

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

【讨论】:

  • 不幸的是,这也将数字四舍五入,更糟糕的是,文档中没有关于它的消息
  • @Blauhirn 我也有同样的问题,是否有简单的解决方法或者我应该创建自己的管道?
  • @phil294 我知道你的评论很旧,但是,现在有关于四舍五入的描述。 angular.io/api/common/DecimalPipe
  • 如果 minFractionDigits 大于 0,则会出错。小数 (2) 后的最小位数高于最大值 (0)。对于管道'DecimalPipe'
【解决方案2】:
  1. 关于你的第一个问题。管道的工作原理如下:

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

    • minIntegerDigits:小数点前显示的最小整数位数,默认设置为1
    • 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

      很酷

      【讨论】:

        猜你喜欢
        • 2017-07-30
        • 2018-06-10
        • 2017-01-19
        • 1970-01-01
        • 2018-04-26
        • 2017-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多