操作脚本字符串到数字

时间:2012-01-27 08:29:42

标签: actionscript-3 flash-cs5

我的语句

有问题
trace(Number("1/2")) //output NaN

trace(Number("1.2")) //output 1.2

所以,我有点困惑,为什么第一个陈述没有给出正确的结果?

3 个答案:

答案 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