jsonp字符串到数字返回错误的数字

时间:2013-01-22 11:16:26

标签: javascript json object numeric

对于需要poi数据的应用程序,我从服务器上检索jsonp数据。该数据采用以下形式:

{
"id":"31775",
"x1":"5.141329",
"y1":"51.593395",
"x2":"5.141974",
"y2":"51.593472",
"p1":"0",
"p2":"0"
}

因为服务器运行php 5.2.17,所以我无法使用JSON_NUMERIC_CHECK

所以当我收到文件时,我会尝试将它们转换为数字。然而,铬控制台和转换后的数字是错误的,如下所示。

Object {id: "31775", x1: "5.141329", y1: "51.593395", x2: "5.141974", y2: "51.593472"…}
id: "31775"
p1: "0"
p2: "0"
x1: 5.261592156887178
x2: 5.261092156887178
y1: 8736.838921620045
y2: 8736.836754225322
__proto__: Object

关于如何解决此问题的任何想法?与此同时,我已经要求我的主机升级php版本,以便我们可以使用数字检查。

提前致谢!

1 个答案:

答案 0 :(得分:0)

从我的Chrome控制台:

var o = {
  "id":31775,
  "x1":5.141329,
  "y1":51.593395,
  "x2":5.141974,
  "y2":51.593472,
  "p1":0,
  "p2":0
};

JSON.stringify(o,null,2)

“{   “id”:31775,   “x1”:5.141329,   “y1”:51.593395,   “x2”:5.141974,   “y2”:51.593472,   “p1”:0,   “p2”:0 }“

如果你的数字差异很大,那么从字符串到数字的转换就会被破坏。

如果你的数字略有不同,欢迎来到[http://floating-point-gui.de/](欢迎来到浮点)。