2013-01-22 44 views
0

對於需要關於poi的數據的應用程序,我從服務器中檢索jsonp dat。這些數據是在以下形式: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

所以,當我收到文件,我嘗試將它們轉換爲數字。但是,Chrome控制檯和轉換後的數字是錯誤的,如下所示。

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

_「我嘗試將它們轉換爲數字」_ - 如何?請顯示你的代碼。 – nnnnnn

+0

顯示的數據位於Chrome控制檯中。所以即使在我嘗試轉換它之前,數字會變得混亂。如你所見,y1從字符串51.593395轉向數字8736.838921620045。我無法以任何其他方式複製此行爲,但它發生在我收到的所有數據中。 – user2000066

回答

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,空,2)

「{ 「ID」:31775, 「X1」:5.141329, 「Y1」 :51.593395, 「X2」:5.141974, 「Y2」:51.593472, 「P1」:0, 「P2」:0 }」

如果你剛開g大量不同的數字,你從字符串到數字的轉換被打破。

如果數字略有不同,歡迎使用[http://floating-point-gui.de/](歡迎使用浮點數)。