Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将价格限制在小数点后2位_Javascript_Jquery_Decimal_Tofixed - Fatal编程技术网

Javascript 如何将价格限制在小数点后2位

Javascript 如何将价格限制在小数点后2位,javascript,jquery,decimal,tofixed,Javascript,Jquery,Decimal,Tofixed,我的Html 基本上,如果我乘以例如40.2数量3,我会得到120.600000000。。。。如何将其限制为2个小数点 数据是通过JSON(由其他人制作)输入的 我是JS新手只需将移动到固定的到乘法的输出即可 price = $(this).parent("div.product-line").find("input[name=product-price]").val( Number(price).toFixed(2) * quantity ) 试试这个: .val( ( Number(p

我的Html

基本上,如果我乘以例如40.2数量3,我会得到120.600000000。。。。如何将其限制为2个小数点

数据是通过JSON(由其他人制作)输入的


我是JS新手

只需将
移动到固定的
到乘法的输出即可

price = $(this).parent("div.product-line").find("input[name=product-price]").val( Number(price).toFixed(2)  *  quantity )
试试这个:

.val( ( Number(price) *  quantity ).toFixed(2) );

先相乘,然后使用固定

var price = $(this).parent("div.product-line").find("input[name=product-price]").val(( Number(price) * quantity ).toFixed(2));
jQuery对十进制值进行四舍五入

方法将数字转换为字符串,保留指定的小数位数

price = $(this).parent("div.product-line").find("input[name=product-price]").val( Number(price)  *  quantity ).toFixed(2)
方法将数字格式化为指定的长度

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()与toFixed()有什么不同?好吧,它们是不同的。toFixed()提供固定数量的小数位数,而另一个提供固定数量的有效位数

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

如果你对稍微四舍五入(听起来你不会,但不妨给出多个建议)没问题,你可以做的一件事就是将结果包装成toFixed

var iNum = 15.667;
iNum.toFixed(2);        // Returns "15.67"
iNum.toPrecision(2);    // Returns "16"
iNum.toPrecision(3);    // Returns "15.7"

但是,真的,如果你需要浮点数的精度,你应该研究一些类似的东西,比如谷歌不适合你吗???OP已经在使用toFixed了,它只是在错误的地方,所以它不是一个真正的副本。@a.Wolff-我真的在写第一条评论,重复“如何对数字进行舍入”,我想如果你搜索toFixed并阅读MDN文档,谷歌会工作的。@所有这些!我想这就是所谓的“帮助他人学习”的意义所在——帮助他人更好地学习我们所知道和热爱的事情!!!为什么投票否决那个家伙。他已经说过他是个新手了。如果你不想帮忙,也不在乎,那就跳过这个问题,去做/回答一些适合你的问题,比如一个特色问题!有时候,对于新手来说,事情可能会变得过于复杂或混乱。不要评判,但要帮助@谢谢大家的评论和帮助!我甚至很欣赏负面评论,因为这有助于提高我的技能。谢谢!我不太清楚它为什么不起作用。你能告诉我为什么这个--Number($(($input[name=order total]).val(sum)).toFixed(2);--不工作,提前感谢它不工作,因为
val(sum)
返回jQuery对象,该对象没有toFixed方法。您必须转换传入的值,如
val(sum.toFixed(2))
谢谢!我用你的例子设法弄明白了,但现在我明白了原因。谢谢你!非常感谢你,非常感谢你的帮助。
var iNum = 15.667;
iNum.toFixed(2);        // Returns "15.67"
iNum.toPrecision(2);    // Returns "16"
iNum.toPrecision(3);    // Returns "15.7"
(Number(price) * quantity).toFixed(2)