Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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数学没有加起来_Javascript_Jquery_Math - Fatal编程技术网

javascript数学没有加起来

javascript数学没有加起来,javascript,jquery,math,Javascript,Jquery,Math,我有一个表单,用户可以对两个字段进行简单的乘法。然后使用jquery将等式的结果放入另一个输入字段中 quantity = Number($('#quantity').val()); price = Number($('#price').val()); subtotal = quantity * price; 及 但是…这些数字加起来是不正确的 我得到了非常奇怪的答案,逗号后面有很长的小数。运行我的控制台时: console.log(subtotal,

我有一个表单,用户可以对两个字段进行简单的乘法。然后使用jquery将等式的结果放入另一个输入字段中

quantity =         Number($('#quantity').val());
price =            Number($('#price').val());

subtotal = quantity * price;

但是…这些数字加起来是不正确的

我得到了非常奇怪的答案,逗号后面有很长的小数。运行我的控制台时:

console.log(subtotal, price+ "x" + quantity + "=" + subtotal);    
它字面上说:

--> 1.07 x 1001 = 1071.0700000000002

这里的最佳解决方案是什么?

我通过添加以下内容解决了这个浮点问题:

myvar = myvar.toFixed(2).replace(/0{0,2}$/, "")
这似乎适用于价格类型的计算

编辑:

正如Joseph Marikle在评论中指出的,这可能会导致1071.0007等数字出现问题

myvar = Number(myvar.toFixed(2)) 

因此看起来是一个更优雅的解决方案。

我通过添加以下内容解决了这个浮点问题:

myvar = myvar.toFixed(2).replace(/0{0,2}$/, "")
这似乎适用于价格类型的计算

编辑:

正如Joseph Marikle在评论中指出的,这可能会导致1071.0007等数字出现问题

myvar = Number(myvar.toFixed(2)) 

因此,看起来是一个更优雅的解决方案。

浮点不准确。如果您计划将所有Javascript数字用作数字,则所有Javascript数字都是浮点(即
var.toFixed(2)。替换(/0{0,2}$/,“”);
bit),您将遇到类似
1071.0007
的数字问题。结果是
“1071”。
。我建议使用
Number(var.toFixed(2))
,但不要使用
var
。据我所知,它是JS中的一个保留字。浮点不准确。所有Javascript数字都是浮点,如果您计划将其用作数字(
var.toFixed(2)。替换(/0{0,2}$/,”;
bit),您将遇到类似
1071.0007
的数字问题。结果是
“1071”。
。我建议使用
Number(var.toFixed(2))
,但不要使用
var
。据我所知,这是JS中的一个保留字。你不应该把它作为答案,而是对你的问题进行编辑。因为你的问题是“这里发生了什么?”,而不是“我怎样才能去掉这些小数”,所以你不应该把它作为答案,而是对你的问题进行编辑。因为你的问题是“这里发生了什么?”,而不是“我怎样才能去掉这些小数”