我的Html
<div class="product-line">
<a href="#" alt="close" class="btn-close" title="Remove"><img alt="remove" src="img/close.png" /></a>
<input class="input-text" name="product-code" type="text" placeholder="Product Code" />
<input class="input-text" name="product-quantity" type="text" placeholder="Quantity" />
<input class="input-text" name="product-discript" type="text" placeholder="Discription of Product" disabled />
<label class="label-sign">£</label>
<input class="input-text price" name="product-price" type="text" placeholder="RRP Price" disabled />
<br>
</div>
我的JS代码行
price = $(this).parent("div.product-line").find("input[name=product-price]").val( Number(price).toFixed(2) * quantity )
基本上如果我乘以例如40.2数量3,我得到的东西就像120.600000000 ....我怎么能把它限制在2个小数点。
数据通过JSON(由其他人制作)传入。
我是JS新手
答案 0 :(得分:6)
只需将toFixed
移动到乘法输出即可。
.val( ( Number(price) * quantity ).toFixed(2) );
答案 1 :(得分:1)
试试这个:
var price = $(this).parent("div.product-line").find("input[name=product-price]").val(( Number(price) * quantity ).toFixed(2));
答案 2 :(得分:0)
首先乘以然后使用固定...
price = $(this).parent("div.product-line").find("input[name=product-price]").val( Number(price) * quantity ).toFixed(2)
jQuery来舍入小数值
toFixed()方法将数字转换为字符串,保持指定的小数位数。
var iNum = 12345.6789;
iNum.toFixed(); // Returns "12346": note rounding, no fractional part
iNum.toFixed(1); // Returns "12345.7": note rounding
iNum.toFixed(6); // Returns "12345.678900": note added zeros
toPrecision()方法将数字格式化为指定的长度。
var iNum = 5.123456;
iNum.toPrecision(); // Returns 5.123456
iNum.toPrecision(5); // Returns 5.1235
iNum.toPrecision(2); // Returns 5.1
iNum.toPrecision(1); // Returns 5
但是你会想知道toPrecision()与toFixed()有什么不同?好吧,它们是不同的.toFixed()给你一个固定的小数位数,而另一个给你一个固定的有效位数。
var iNum = 15.667;
iNum.toFixed(2); // Returns "15.67"
iNum.toPrecision(2); // Returns "16"
iNum.toPrecision(3); // Returns "15.7"
答案 3 :(得分:0)
如果您对轻微的舍入(听起来不会,但可能会给出多个建议),您可以做的一件事就是将结果包装到固定的
(Number(price) * quantity).toFixed(2)
但是,实际上,如果您需要精确浮点数,您应该查看类似bigDecimal.js
的内容