Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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 EJS中的求和过程_Javascript_Node.js_Express_Ejs - Fatal编程技术网

Javascript EJS中的求和过程

Javascript EJS中的求和过程,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我试图将两个变量相加如下: xValue为2.00000000(正) y值为-0.00001250(负值) 没有问题:=2.0000125 我做错了什么?首先,Number.toFixed(n)返回一个字符串(小数点后有n位),而不是一个数字。如果你想用数字来做数学运算,把它们推到固定的toFixed通常不是一个好主意(对于任何数学来说,它们都应该转换回Number类型) 其次,+操作在JS中重载:对于数字,它是加法,但是对于字符串(即使只有一个操作数是字符串),它是操作数的串联。这正是在您的案

我试图将两个变量相加如下:

xValue
为2.00000000(正)

y值
为-0.00001250(负值)

没有问题:=
2.0000125


我做错了什么?

首先,
Number.toFixed(n)
返回一个字符串(小数点后有
n
位),而不是一个数字。如果你想用数字来做数学运算,把它们推到固定的
toFixed
通常不是一个好主意(对于任何数学来说,它们都应该转换回
Number
类型)

其次,
+
操作在JS中重载:对于数字,它是加法,但是对于字符串(即使只有一个操作数是字符串),它是操作数的串联。这正是在您的案例中发生的情况:两个字符串——代表正数和负数——只是粘在一起

(顺便说一句,其余算术运算的结果不一样;因此
-
的结果是正确的)

总的来说,这里有一种可能的方法来表达您的需求:

<%= (xValue + yValue).toFixed(8) %>


。。。但这里有一个警告:JS中的浮点数学在设计上有缺陷。您只处理可以存储在内存中的浮点值的近似值。大多数情况下,这些近似值将正确地四舍五入到
toFixed()
,但有时,.

首先,
Number.toFixed(n)
返回一个字符串(小数点后有
n
位),而不是一个数字。如果你想用数字来做数学运算,把它们推到固定的
toFixed
通常不是一个好主意(对于任何数学来说,它们都应该转换回
Number
类型)

其次,
+
操作在JS中重载:对于数字,它是加法,但是对于字符串(即使只有一个操作数是字符串),它是操作数的串联。这正是在您的案例中发生的情况:两个字符串——代表正数和负数——只是粘在一起

(顺便说一句,其余算术运算的结果不一样;因此
-
的结果是正确的)

总的来说,这里有一种可能的方法来表达您的需求:

<%= (xValue + yValue).toFixed(8) %>

。。。但这里有一个警告:JS中的浮点数学在设计上有缺陷。您只处理可以存储在内存中的浮点值的近似值。大多数情况下,这些近似值将被
toFixed()
正确舍入,但有时

<%= (xValue + yValue).toFixed(8) %>