Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Actionscript 3 操作脚本字符串到数字_Actionscript 3_Flash Cs5 - Fatal编程技术网

Actionscript 3 操作脚本字符串到数字

Actionscript 3 操作脚本字符串到数字,actionscript-3,flash-cs5,Actionscript 3,Flash Cs5,我对下面的陈述有疑问 trace(Number("1/2")) //output NaN 但是 因此,我有点困惑,为什么第一条语句没有给出正确的结果?它可能期望值已经是一个数字,而不是一个计算。尝试分析此字符串:“1+2”。这很可能也会导致NaN 编辑:我已经运行了一个测试 Number("1.2") = 1.2 Number("1+2") = NaN Number("1/2") = NaN 因此,正如我所说,Number()构造函数期望的是一个数字,而不是一个计算。通过将值包含在引号中,

我对下面的陈述有疑问

trace(Number("1/2")) //output NaN
但是


因此,我有点困惑,为什么第一条语句没有给出正确的结果?

它可能期望值已经是一个数字,而不是一个计算。尝试分析此字符串:
“1+2”
。这很可能也会导致NaN


编辑:我已经运行了一个测试

Number("1.2") = 1.2
Number("1+2") = NaN
Number("1/2") = NaN

因此,正如我所说,
Number()
构造函数期望的是一个数字,而不是一个计算。

通过将值包含在引号中,可以使其成为一个显式字符串。 这就像问“this”这个词的数值是多少

不确定这是否有帮助,但删除引号,这是有意义的

trace(Number(1/2)); //output 0.5

可以使用Number()将由数字字符组成的字符串转换为实际数字数据。它的工作方式是将字符串值传递给Number(),反过来,这将创建传递给它的字符串的数字版本

    trace(Number("1")/Number("2"));     // Output 0.5
NaN是输出,因为您试图将字符串数据转换为数字数据

您必须这样跟踪,因为“/”运算符不是数字。
您只能对数字进行乘法或除法,而不能对字符串进行除法。因此,在尝试对字符串数据进行除法时,我们会隐式强制将值更改为数字数据。我们不能那样做。我们应该先将字符串数据显式转换为数字数据,然后执行算术运算。

在构造函数中传递的对象应该直接表示双精度浮点数。该语句是由用户输入的,因此我无法删除引号。还有其他解决方法吗?你的输入总是相同的格式吗?i、 一个分数?这样您就可以解析字符串,得到/之前的字符和/之后的字符,然后对这些子字符串执行计算。e、 g.var str:String=“1”;var str2:String=“2”;跟踪(编号(str)/编号(str2))//输出0.5您对数字的解释是正确的,但a)
Number()
不是构造函数,而是顶级转换函数,b)使用
parseFloat()
parseInt()
将字符串转换为数值更安全、更准确(解析字符串直到第一个非数字字符,如果字符串无法转换,则始终返回NaN-检查表中
Number()
可能的返回值以了解我的意思)。@weltraumpirat:thanx请更正我的错误。我已修改了我的答案,因为Number()不是构造函数。
    trace(Number("1")/Number("2"));     // Output 0.5