javascript - 将乘法结果格式化为小数点后两位

标签 javascript jquery currency

我在使用 javascript 格式化货币时遇到了一些奇怪的行为。我已经阅读并尝试使用 this page 中的多种方法有不同程度的运气,并不能完全达到我的预期结果。

这就是我正在做的。我有一个 <input>用户可以在其中输入商品的数量,比如他们想要 5 个 X,每个 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)

我错过了什么?

最佳答案

您需要在乘法结果上调用 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>

关于javascript - 将乘法结果格式化为小数点后两位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52801994/

相关文章:

javascript - 比特币/英镑的汇率如何计算?

java - 如果你有 ISO 国家代码 `US` , `FR` ,你如何获得区域代码 (`Locale.US` , `Locale.FRANCE` )?

javascript - 使用 Office-js 提高搜索 Microsoft Word 的性能

javascript - 测试 eventEmiters 的最佳方式?

javascript - 如何使用 Jquery 检查页面上是否存在链接?

javascript - 防止表头在搜索时隐藏

jquery - "Mega"下拉菜单

javascript - 循环声音onclick只是

javascript - 在 JS 中将构造变量添加到 HTML

C# 货币排列