Javascript 在vuejs中执行多种算法

Javascript 在vuejs中执行多种算法,javascript,vue.js,Javascript,Vue.js,我尝试获取一个值的百分比,并使用vuejs再次将其与自身相加。 这是一个示例: 5/100*900+900=945.00(正常方式) 5/100*900+900=90045(Vuejs方式) 下面是我的代码: <td> <input name="amount[]" v-model="row.amount" style="width: 94px;" type="text"> </td> <td> <select name="vat[]"

我尝试获取一个值的百分比,并使用vuejs再次将其与自身相加。 这是一个示例: 5/100*900+900=945.00(正常方式)

5/100*900+900=90045(Vuejs方式)

下面是我的代码:

<td>
  <input name="amount[]" v-model="row.amount" style="width: 94px;" type="text">
</td>
<td>
  <select name="vat[]" v-model="row.vat" style="width: 94px;" class="form-control">
    <option value="0" selected>0%</option>
    <option value="5">5 %</option>
  </select>

</td>
<td>
  <input type="hidden" :value="row.vat / 100 * row.amount" v-model="gross_am">
  <input value="" name="gross[]" :value="row.amount + gross_am" v-model="row.gross | currencyDisplay" style="width: 94px;"
    type="text">
</td>

0%
5%
关键是我试图获取输入金额的总金额,要获取总金额,用户将输入金额,并从下拉列表和算术触发器中选择增值税值。这是价值加上价值=总金额的百分比 谢谢
(我仍然是vuejs noob)

发生这种情况是因为
行。金额和
总额是字符串。
+
运算符用于字符串串联和算术运算。如果两个值都是字符串,则将它们连接起来。在您的例子中,字符串“900”和“45”被连接到“90045”。要避免这种情况,请手动将值转换为整数

<input value="" name="gross[]"  :value="parseInt(row.amount) + parseInt(gross_am)" v-model="row.gross | currencyDisplay"  style="width: 94px;"
                                       type="text">

您确实应该使用计算属性,而不是在代码
row.vat/100*row.amount中内联这样的内容。