如何将价格限制为2小数点

时间:2014-05-06 15:14:10

标签: javascript jquery decimal tofixed

我的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">&pound;</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新手

4 个答案:

答案 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

的内容