当前位置: 首页 > 面试题库 >

为什么AngularJS货币过滤器使用括号将负数格式化?

汤弘文
2023-03-14
问题内容

现场演示

为什么这个:

# Controller
$scope.price = -10;

# View
{{ price | currency }}

结果($10.00)而不是-$10.00


问题答案:

这是代表负货币的一种流行方法。维基百科:

在簿记中,所欠金额通常用红色数字或括号中的数字表示,以替代表示负数的符号。

您可以在Angular源代码中看到他们执行此操作的位置(negSuf/ negPre):

function $LocaleProvider(){
  this.$get = function() {
    return {
      id: 'en-us',

      NUMBER_FORMATS: {
        DECIMAL_SEP: '.',
        GROUP_SEP: ',',
        PATTERNS: [
          { // Decimal Pattern
            minInt: 1,
            minFrac: 0,
            maxFrac: 3,
            posPre: '',
            posSuf: '',
            negPre: '-',
            negSuf: '',
            gSize: 3,
            lgSize: 3
          },{ //Currency Pattern
            minInt: 1,
            minFrac: 2,
            maxFrac: 2,
            posPre: '\u00A4',
            posSuf: '',
            negPre: '(\u00A4',
            negSuf: ')',
            gSize: 3,
            lgSize: 3
          }
        ],
        CURRENCY_SYM: '$'
      },


 类似资料:
  • 问题内容: 我对创建一个可以接受金额,ISO 4217货币代码和小数大小并以该格式返回金额的过滤器感兴趣。我注意到AngularJS在中,但是我对Angular比较陌生,不知道是否可以使用它? 问题答案: 货币模式和符号就是这样。它确定如何显示数字。它将不会从XXX转换为XXX。您将必须根据当前的转换率进行转换。 至于使用内置货币格式,有多种方法:在模板中,在代码中。 在模板中: 在代码中: 在这

  • 问题内容: 有没有办法从货币过滤器的输出中删除小数/分?我正在做这样的事情: 哪个输出: $ 1,000.00 相反,我想: $ 1,000 可以使用货币过滤器来完成吗?我知道我可以在数字前加一个美元符号,并且可以编写自己的过滤器,但我希望现有的货币过滤器中存在一种简单的方法。 谢谢。 问题答案: 更新 :从 1.3.0 版本开始-currencyFilter:添加fractionSize作为可选

  • 问题内容: 我正在使用我给定的语言环境获取自定义货币格式。但是,这始终包含我不需要的货币符号,我只想要给定语言环境的正确货币数字格式而没有货币符号。 做一个抛出一个异常.. 问题答案: 以下作品。这有点丑陋,但可以履行合同: 您还可以从货币格式中获取模式,删除货币符号,然后从新模式中重构新格式:

  • 问题内容: 嗨,当我使用跨度标签时,我可以应用货币过滤器,例如 我想知道如何在输入代码中应用相同的货币过滤器。即 当我尝试将货币过滤器应用于上述输入字段时,它不起作用。请让我知道如何将货币过滤器应用于输入字段。谢谢 问题答案: 我创建了一个简单的指令来处理格式化输入字段。这是一个jsfiddle示例。要使用它,请将其添加到现有代码中。 并将此指令添加到您的代码中。

  • 问题内容: 有没有一种格式可以如下设置小数: 如果是整数,则省略小数部分。否则,格式要保留两位小数。 问题答案: 我建议使用java.text包: 这具有特定于区域设置的额外好处。 但是,如果必须的话,如果它是一整美元,则截断要返回的字符串:

  • 所有-我有一个,它将格式化为货币格式: 这很好,问题是我的编辑文本只需要整数,所以我不允许用户输入美分。因此,我想要1比12比123比1234,而不是0.01比0.12比1.23比12.34。如何去掉小数点,但保留逗号?非常感谢。