![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Доброе время суток.
Если взять числа от 1 до 9 и просто выводить их на экран с помощью alert с использованием parseInt, то можно наблюдать странную штуку. Дело в том, что при alert(parseInt('8'))выводиться НОЛЬ вместо восьмерки. То же самое и с числом 9. Все остальные числа выводятся нормально. Объясните мне пожалуйста почему? Почему именно 8 и 9 ? Решение данной проблеме нашел, использовав в функции ПАРСИНТ второй параметр 10. Тоесть parseInt('8',10). И тогда все нормально. Но почему без явном указании единицы исчисления все числа выводятся нормально за исключением 8 и 9 ? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
t77
ничего что parseInt('i') пытается символ i к int привести? а alert(parseInt('8')) выведет 8, как и ожидается. |
|||
|
||||
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
t77, в твоём примере alert() выдаёт сплошные NaN - кавычки там не нужны
|
|||
|
||||
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Попробуйте следующий код:
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
а причем тут тогда предыдущий код?
Открою страшную тайну... 010 - это число в octal число (в 8-ичном виде). http://www.w3schools.com/jsref/jsref_parseInt.asp тут можешь посмотреть документацию по функции parseInt. а исправить можешь так
просто добавив 10 во второй аргумент функции parseInt, чтобы она использовала десятичную систему счисления. Это сообщение отредактировал(а) azesmcar - 27.8.2009, 15:22 |
|||
|
||||
| t77 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
В предыдущем коде забыл прикрепить нолик в начале каждого из чисел.
Это не тайна и тем более не страшная. Понятно, что можно задать с помощью второго параметра систему исчисления...Я об этом говорил в самом начале. Вопрос был поставлен НЕ как решить задачу. Я спросил, почему НЕ ЗАДАВ второй параметр(Decimal, Hexadecimal,Octal), все числа отображаются правильно, за исключением 8 и 9 ? |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
я думал это и так понятно. Потому что чисел 8 и 9 в восьмеричной системе счисления нету. Это сообщение отредактировал(а) azesmcar - 27.8.2009, 15:49 |
|||
|
||||
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
ОППА!
Добавлено через 1 минуту и 34 секунды И вообще, причем тут восмеричная система? Добавлено через 4 минуты и 1 секунду Я же НЕ указываю второй параметр ПАРСИНТ. По умолчанию он должен считать по десятичной системе. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
что такое восьмеричная система знаешь? Вот тут написано http://ru.wikipedia.org/wiki/%D0%92%D0%BE%...%BD%D0%B8%D1%8F приведу пример на двоичной, она состоит из нулей и единиц, число 2, 3, 4, 5... там не используются, попросту цифры 25 в двоичной системе счисления быть не может, 25 в двоичной выглядет так 11001. А в восьмеричной нет чисел 8 и 9, только 0, 1, 2, 3, 4, 5, 6, 7. Подробнее ..если перед числом поставить знак 0, это воспринимается как указание на то, что число представлено в восьмеричной системе счисления. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
t77, если вы пишете число с нулём впереди, то подразумевается, что вы пишете восьмиричное число.
тоже самое, что и 0х для шестнадцеричного я вообще-то думал, что это общее математическое правило для языков программирования. во всяком случае оно работает и в js, и в php зачем вы вообще стали приписывать ноль вперёд? случайно это не получится |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
Кто так решил? Я ведь ссылку на документацию не просто так прислал...
Это сообщение отредактировал(а) azesmcar - 27.8.2009, 16:04 |
||||
|
|||||
| t77 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 27.7.2008 Репутация: нет Всего: нет |
Вы правы!Все ясно! Спасибо большое
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |