.toFixed()的结果上标

时间:2018-12-19 13:01:21

标签: javascript string vue.js template-strings

在我的Vue.js模板中,我有一个模板字符串来计算总金额。我已经使用.toFixed()方法显示小数。小数应以上标显示。

如何在下面的模板字符串的.toFixed(2)部分上标?

{{ Number.isInteger(calculation.total) ? (calculation.total + '.-') : 
calculation.total.toFixed(2) }}

因此总金额应显示为例如180. 50 而不是180.50。

更新:谢谢您让我知道.sup()已被弃用。没有不推荐使用的方法,如何在模板字符串中获得上标?我改掉了这个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用可重用的组件,该组件可处理其单独作用域内的所有格式逻辑。

const Price = {
  template: '<span>{{ int }}.<sup>{{ fraction }}</sup></span>',
  props: {
    value: {
    type: Number,
      required: true,
    },
  },
  computed: {
    int() { return Math.floor(this.value); },
    fraction() {
      const i = this.int, v = this.value
      return v === i
        ? '-'
        : Math.round((Math.abs(v) - Math.abs(i)) * 1e2)
    },
  },
}


new Vue({
  el: "#app",
  components: {
    Price,
  },
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <Price :value="40.3253" />
</div>