首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在vue-i18n中显示带小数和不带小数的货币

如何在vue-i18n中显示带小数和不带小数的货币
EN

Stack Overflow用户
提问于 2017-12-30 04:51:36
回答 1查看 6.1K关注 0票数 4

使用以下配置,我可以输出带有货币的金额

代码语言:javascript
运行
复制
const numberFormats = {
    "en-GB": {
        currency: {
            style: 'currency', currency: 'GBP'
        }
    },
    "en-US": {
        currency: {
            style: 'currency', currency: 'USD'
        }
    }
}

在组件内部

代码语言:javascript
运行
复制
<p>{{ $n(100.20, 'currency') }}</p>

我可以输出:

代码语言:javascript
运行
复制
<p>£100.20</p>

以下格式在某些情况下可能很好用,但如果我需要输出简单的数量,如:10 5、10 10等。我不能。我试图配置它,但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-30 13:58:40

vue-i18n docs指示数字格式可以包括Intl.NumberFormat options,因此您可以将minimumFractionDigitsmaximumFractionDigits选项都设置为零,以便从货币中删除小数部分。

您可以定义一个使用以下选项的新命名格式(例如,"currencyNoCents"):

代码语言:javascript
运行
复制
const numberFormats = {
  'en-US': {
    currency: {
      style: 'currency', currency: 'USD'
    },
    currencyNoCents: {
      style: 'currency',
      currency: 'USD',
      minimumFractionDigits: 0, // set fraction digits to 0 to remove cents
      maximumFractionDigits: 0
    }
  },
  'en-GB': {
    currency: {
      style: 'currency', currency: 'GBP'
    },
    currencyNoCents: {
      style: 'currency',
      currency: 'GBP',
      minimumFractionDigits: 0, // set fraction digits to 0 to remove cents
      maximumFractionDigits: 0
    }
  },
}

const i18n = new VueI18n({
  locale: 'en-GB',
  numberFormats
})

new Vue({
  i18n
}).$mount('#app')
代码语言:javascript
运行
复制
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-i18n/dist/vue-i18n.js"></script>

<div id="app">
  <p>{{ $n(100.20, 'currency') }}</p>
  <p>{{ $n(100.20, 'currencyNoCents') }}</p>
</div>

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48028314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档