Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Apache flex firefox赢得了';t在flex中将字符串转换为数字_Apache Flex_Actionscript 3_String_Firefox_Numbers - Fatal编程技术网

Apache flex firefox赢得了';t在flex中将字符串转换为数字

Apache flex firefox赢得了';t在flex中将字符串转换为数字,apache-flex,actionscript-3,string,firefox,numbers,Apache Flex,Actionscript 3,String,Firefox,Numbers,我使用全局坐标在Flex中制作web应用程序 我从web服务获取坐标作为字符串,然后执行以下操作: latStr:String = "28.7242100786401"; longStr:String = "-106.12635420984"; var cLat:Number = new Number(latStr); var cLong:Number = new Number(longStr); 这在IE和chrome上,从web服务器和本地调试时都能完美工作,但Firefox只在web服

我使用全局坐标在Flex中制作web应用程序

我从web服务获取坐标作为字符串,然后执行以下操作:

latStr:String = "28.7242100786401";
longStr:String = "-106.12635420984";

var cLat:Number = new Number(latStr);
var cLong:Number = new Number(longStr);
这在IE和chrome上,从web服务器和本地调试时都能完美工作,但Firefox只在web服务器
cLat
cLong
return“
NaN
”中进行本地调试时才工作

亲自查看,当您单击结果时,它会弹出一个警报:

因此,我尝试使用
parseFloat()
,但它将
cLat
循环到
28
,并将
cLong
循环到
-106
:(

然后我试着将小数从整数中分离出来,就像我的例子28和7242100786401一样,然后将7242100786401/100000000000=0.7242100786401分开

有两个数字28和0.7242100786401,我把它们加起来

28+0.7242100786401=28.7242100786401

以下是代码格式:

var latArr:Array = latStr.split(".");
var longArr:Array = longStr.split(".");


var latDivStr:String = "1";
for (var i:int= 0; i< latArr[1].length; i++){
latDivStr += "0";
}

var longDivStr:String = "1";
for (var j:int = 0; j< longArr[1].length; j++){
longDivStr += "0";
}
var cLat:Number = parseFloat(latArr[0]) + arseFloat(latArr[1])/parseFloat(latDivStr);
var cLong:Number = parseFloat(longArr[0]) - parseFloat(longArr[1])/parseFloat(longDivStr);
var-latArr:Array=latStr.split(“.”);
var longArr:Array=longtr.split(“.”);
var latDivStr:String=“1”;
对于(变量i:int=0;i
同样,这种方法在任何地方都很有效,只是在web服务器的firefox中不起作用>\u>


有人有什么想法吗?我快发疯了,我从来没有听说过这样的错误,因为Flash运行时应该让不同的浏览器和操作系统以相同的方式解释SWF。我要说的是,我认为你不应该在你的数字铸造前使用“new”

latStr:String = "28.7242100786401";
longStr:String = "-106.12635420984";

var cLat:Number = new Number(latStr);
var cLong:Number = new Number(longStr);
这应该是:

var cLat:Number = Number(latStr); //Number is right because its a Floating Point, but remove new.
var cLong:Number = Number(longStr); //Number is right because its a Floating Point, but remove new.
我使用下面的方法测试了数据,发现没有发生舍入

var-latStr:String=“28.7242100786401”; var longStr:String=“-106.12635420984”

我不明白你为什么需要这种解决方法。另外,我使用firefox作为我的主浏览器,你的网站似乎工作得很好


干杯。

我终于找到了它为什么不工作的原因,因为某些原因,在firefox中,它从web服务(在vb.net中完成)中读取一个逗号(,),而不是读取一个点()

它在本地也以点的形式读取,而不是在线读取,所以我想它必须与我的IIS服务器O_O做些什么


希望这对其他人有所帮助…

逗号是许多欧洲国家的分隔符,因此它很可能是服务器或客户端上的区域配置。

您好,谢谢您的回复。它在我测试过的任何计算机上都不起作用,都带有不同类型的flash播放器(9、10、调试和非调试)你能解释一下我在你页面的链接中寻找的是什么吗?也许是一个显示错误的屏幕截图?我看不到你所指出的舍入。使用嗅探器,我发现以下操作失败-这就是你的意思吗?嘿,谢谢你的帮助,看看这张图片。这是我在每台计算机上看到的,但使用IE和Chrome everyt兴的作品完美,你看到的是正确的价值观而不是楠
trace(parseFloat(latStr)); //Outputs:  "28.7242100786401";
trace(parseFloat(longStr)); //Outputs:  "-106.12635420984";

trace(Number(latStr)); //Outputs:  "28.7242100786401";
trace(Number(longStr)); //Outputs:  "-106.12635420984";