我的语句
有问题trace(Number("1/2")) //output NaN
但
trace(Number("1.2")) //output 1.2
所以,我有点困惑,为什么第一个陈述没有给出正确的结果?
答案 0 :(得分:12)
它可能期望值已经是一个数字,而不是计算。尝试解析此字符串:"1+2"
。它最有可能导致NaN。
编辑:我已经开始测试了
Number("1.2") = 1.2
Number("1+2") = NaN
Number("1/2") = NaN
因此,正如我所说,Number()
构造函数需要一个数字,而不是计算。
答案 1 :(得分:1)
您可以使用Number()将由数字字符组成的字符串转换为实际的Number数据。它的工作方式是将String值传递给Number(),反过来,这将创建传递给它的String的Number版本。
trace(Number("1")/Number("2")); // Output 0.5
NaN 是输出,因为您尝试将String数据转换为Number数据。
你必须这样跟踪因为“/”运算符不是数字。 您只能将数字乘以或除以数字,而不是字符串。因此,在尝试划分字符串数据时,我们隐式强制将值更改为数字数据。我们做不到。我们应该首先将String数据显式转换为Number数据,然后执行算术运算。
答案 2 :(得分:-1)
通过将值括在引号公园内,您将使其成为显式字符串。 这就像询问“this”这个词的数值是多少。
不确定这是否有帮助,但删除了引号,这是有道理的。
trace(Number(1/2)); //output 0.5