将乘法结果格式化为2个小数位

时间:2018-10-14 11:06:26

标签: javascript jquery currency

我在用javascript格式化资金时出现了一些奇怪的行为。我已经阅读并尝试使用this page中的多种方法,但运气不同,无法完全达到预期的效果。

这就是我在做什么。我有一个<input>,用户可以输入一件商品的数量,说他们要X的数量为5,每个X的价格为£19.34(单价)。

当前,我正在使用on change函数,但这没关系。

这就是我要得到的与应该得到的:

5 x£19.34 = 我得到:£96.7,我想要:£96.70

6 x£19.34 = 我得到:£116.03999999999999,我想要:£116.04

3 x£19.34 = 我得到:£58.019999999999996,我想要:£58.02

在上面的示例中,这是我的代码:

$('.js_qty').change(function () {
  qty = $(this).val()
  $('#price').text(qty * unitPrice.toFixed(2))
});

尤其是这一行似乎并没有给我预期的结果:

unitPrice.toFixed(2)

我想念什么?

1 个答案:

答案 0 :(得分:1)

您需要根据乘法结果而不是直接toFixed(2)来调用unitPrice

var unitPrice = 19.34;

$('.js_qty').change(function() {
  var qty = $(this).val();
  $('#price').text((qty * unitPrice).toFixed(2));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="js_qty">
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
</select>
<div id="price"></div>