Я работаю с GWT и анализирую результат JSON из метода веб-сервиса ASP.NET, который возвращает DataTable. Я могу просто разобрать результат в JSONvalue / JSONObject. У меня проблема в том, что один из моих столбцов в DECIMAL (20, 0) и значения, которые анализируются в JSON, не являются точными. Чтобы продемонстрировать без необходимости вызова WS, в GWT я бросил это вместе:
String jsonString = "{value:4768428229311981600}";
JSONObject jsonObject = JSONParser.parse( jsonString ).isObject();
Window.alert( jsonObject.toString() );
Это в свою очередь предупреждает:
{"value":4768428229311982000}
Я понимаю, что JSONParser из GWT просто использует eval () для анализа, так что это какая-то проблема с точностью / числом в JavaScript, о которой я никогда не знал. Я признаю, что не слишком много работаю с числами в JavaScript, и я мог бы обойти это, изменив .NET WebService, чтобы он возвращал этот столбец как строку, но я бы действительно не хотел этого делать.
Спасибо за любую помощь.