![]() |
ParseInt и ParseFloat выдают разные числа. Почему?
Столькнулся с такой вот непонятной штукой.
Имеем строки вида "00012345" Нужно выделить из неё число (целое конечно же) 12345 почему то parseInt() выдает что то непонятное вообще, а вот parseFloat() срабатывает как надо. Проблемы нет, но интерес есть, почему так? исходник не выкладываю, проверить просто: Код AS1/AS2:
32099 76543 |
Нужно облегчить парсеру parseInt задачу, указав основание:
Код AS1/AS2:
|
mooncar
Спасибо. Но вроде бы это необязательный параметр? Получается что без явного указания основания, он не понимает в какую систему переводить? |
Ага. Понимает по-своему.
Кто-нибудь даже может подсказать, как начинает работать parseInt в случае вашей строки, что выводит 32099. |
Да нет, это уже неважно.
В принципе всё понятно. Наверное всёже безопаснее указывать необязательный параметр, чтоб гарантированно получить то, что ожидаешь. |
Ага.
Кстати, в 8-ричной он у вас посчитал: Код AS1/AS2:
Офтоп: это вроде как из автомобиля к гаишнику выходить не обязательно, но для достижения лучших результатов разговора все предпочитают это делать. И т. п. |
Ну вот эту цифру я написал для примера, но вообще он и без 7 выводит ерунду.
Не помню встречалась ли первая цифра больше 7, но правильного результата небыло ни разу |
0 перед знаковыми числами даёт основания считать что это 8-ричная система
Код AS1/AS2:
|
Я так и понял что это из за нулей. Если их убрать, то конечно всё работает ожидаемо.
Но мне такие данные приходят, что делать. Причем нельзя выкусить substring, ибо количество нулей непредсказуемо. Можно конечно как то искать где начинается цифра и заканчиваются нули, но зачем делать кучу лишних операций, когда есть parseInt? А он вон как... Умный он оказывается :) Слишком... |
Цитата:
Код AS1/AS2:
|
| Часовой пояс GMT +4, время: 03:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.