我在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>