|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Длинное число после преобразования в строку изменяется
Задача стоит сравнивать айдишники. Одни могут приходить в числовом типе, другие в строковом, поэтому заведомо перевожу их все в строковый тип. Но заметил, что приложение в кое-какие моменты ведет себя не корректно - предположил что такое поведение в приложении может происходить, когда айди не совпадают, хотя должны. Давай проверять - и оказалось что так и есть. При преобразовании айдишников в строку их значение меняется и уже отличается от исходного.
Например, если так преобразую 2674332404735588964 + "" // результат 2674332404735588864 - окончание не совпадает с исходным в итоге P.S. в догонку вопрос значения одинаковые, но типы разные у этих айдишников - скрипт их нормально сравнивает и определяет, что они идентичны так и должно быть? Если в разных типах числа нормально сравниваются, может тогда и не стоит париться с преобразованием? Добавлено через 15 часов 20 минут Все эти айдишники длинные получаю в JSON - в каких-то версиях они в кавычках, где-то в без. Поэтому после JSON.parse первые становятся строковыми данными, вторые числовыми и с потерями из-за превышения размерности типа Number. Все что перепробовал не помогает перевести эти числа нормально в строку. Попробовал и параметр reviver в JSON.parse - тоже не помогает, видать он тупо как фильтр работает. Вижу пока единственный выход - это перед тем как парсить json, всю эту текстовую портянку пропускать через регулярку и большие числа заключать в кавычки..
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
Часовой пояс GMT +4, время: 13:51. |
|
« Предыдущая тема | Следующая тема » |
|
|