我在用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)
我想念什么?
答案 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>