返回非数字的Javascript值(NaN)

返回非数字的Javascript值(NaN),javascript,variables,nan,Javascript,Variables,Nan,我有一段代码如下: var percentageTemp =((parseInt(score)/parseInt(guesses))*100); var percentage= percentageTemp.toFixed(2); 得分和猜测在代码开始时都设置为0,并在用户玩游戏时更改。代码按它应该的方式工作,如果我离开score变量0,则会得到一个NaN输出。 为什么当得分=0时我会得到NaN输出 代码按它应该的方式工作,如果我保留score变量0,则会得到一个NaN输出 您不应该这样做(N

我有一段代码如下:

var percentageTemp =((parseInt(score)/parseInt(guesses))*100);
var percentage= percentageTemp.toFixed(2);
得分
猜测
在代码开始时都设置为0,并在用户玩游戏时更改。代码按它应该的方式工作,如果我离开
score
变量0,则会得到一个NaN输出。 为什么当
得分
=0时我会得到NaN输出

代码按它应该的方式工作,如果我保留score变量0,则会得到一个NaN输出

您不应该这样做(Node.JS REPL中的示例):

另一方面,如果您将
猜测留在
0
处,则:


…因为

我建议使用基数。parseInt(分数,10)以确保值不会转换为十六进制。另外,请注意,javascripts对十进制数的处理并不准确。尝试将其放入控制台-(0.1+0.2),然后看到返回的异常值-0.300000000000000004

您能告诉我们分数是如何初始化的吗?您应该只在猜测为0时得到NaN,当分数为0时,您的代码将分别给出0或“0.00”。您不能将零除以零-因此NaN作为JavaScript无法量化。-并且一个至少
0/0
的小提琴可能的副本将返回
NaN
。任何其他
../0
../0
将根据两个数字的符号返回
-Infinity
Infinity
。Oh和
Infinity/Infinity
也将返回
NaN
> var score = 0; var guesses = 1; var percentageTemp =((parseInt(score)/parseInt(guesses))*100); var percentage= percentageTemp.toFixed(2); console.log(percentage)
0.00
> var score = 0; var guesses = 0; var percentageTemp =((parseInt(score)/parseInt(guesses))*100); var percentage= percentageTemp.toFixed(2); console.log(percentage)
NaN