2012-07-17 3 views
1

jserver를 사용하여 웹 서버에서 json 데이터를 가져옵니다. 반환 된 피 들러 데이터로 확인하면 모든 것이 정상적으로 보입니다. 그러나 Chrome/Internet Explorer 또는 Safari에서 디버그를 시작하면 일부 값이 변경된다는 것을 알았습니다. 예를 들어, Int64는 서버에서 값 : 10150987224093521로 전송됩니다. 그러나 디버깅 할 때 1015098722409352 * *으로 표시됩니다. 값은 항상 1 씩 감소합니다. Fiddler가 올바른 값인 10150987224093521을 표시합니다. 무작위로 발생합니다. 나는 논리적 인 이유를 찾을 수 없다. 왜 이런 일이 일어날 지에 대한 생각이나 암시가 있습니까?JSON Int64 데이터가 임의로 바뀌거나 변경됨

답변

2

자바 스크립트를 두 번 수레 모든 숫자를 나타냅니다

http://en.wikipedia.org/wiki/JavaScript_syntax#Number

숫자 이진 표현된다 정확도 거의 16 유효 숫자를 제공 IEEE-754 두 배, 등. 부동 소수점 숫자 은 숫자이므로 분수를 포함하여 항상 실수를 정확하게 나타내지는 않습니다.

숫자는 10 15098 72240 93521이므로 정밀도가 떨어지기 시작합니다.

빠른 자바 스크립트 데모 : http://jsfiddle.net/EYjjX/

+0

감사합니다! 이것은 정말로 도움이됩니다. 대신 어떻게 문자열로 구문 분석 할 수 있습니까? 나는 수학 연산을하고 있지 않다. 식별자/키로 사용됩니다. – MAhmed

+0

네, 문자열을 사용해야한다고 생각합니다. 비슷한 문제가 json_encoding 때 뭔가를 PHP에서 숫자 찾고 만났다. 아니면 또 다른 StackOverflow 질문입니까? :) – biziclop

+0

DailyWTF에도 비슷한 문제가 있습니다. http://thedailywtf.com/Articles/Confessions-The-Phone-Number.aspx – biziclop

관련 문제