firefox不会在flex中将字符串转换为数字

时间:2009-03-26 21:07:12

标签: flex actionscript-3 string firefox numbers

我使用全局坐标在Flex中创建一个Web应用程序

我从网络服务获取坐标作为字符串然后我做这样的事情:

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

var cLat:Number = new Number(latStr);
var cLong:Number = new Number(longStr);

这对IE和Chrome来说是完美的,来自网络服务器以及在本地调试时,但 Firefox只能在本地调试时运行而不是来自Web服务器,在Web服务器{{ 1}}和cLat返回“cLong”。

自己检查一下,点击结果时会弹出警报: http://mundobuk.com/prueba/mapa/main.html?buscar=oxxo

所以我尝试使用NaN,但它将parseFloat()转为cLat,将28转为cLong :(

然后我尝试将小数形式从整数中分离出来,比如我的例子28和7242100786401,然后除以7242100786401/10000000000000 = 0.7242100786401

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

28 + 0.7242100786401 = 28.7242100786401

这是代码形式:

-106

再次,这种方式在任何地方都很有用,只是在web服务器中没有firefox> _>

谁有任何想法?我疯了这个@ _ @

3 个答案:

答案 0 :(得分:1)

我从来没有听说过这样的错误,因为Flash运行时应该让不同的浏览器和操作系统以相同的方式解释SWF。我会说我不相信你应该在你的号码铸造前面使用“新”。

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”;

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

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

我不明白为什么要求这种解决方法。我也使用firefox作为我的主浏览器,你的网站似乎工作正常。

干杯。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

本地它也把它读作一个点,而不是在线,所以我想它必须对我的IIS服务器做一些事O_o

希望这可以帮助那些人...