Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложение чисел 
:(
    Опции темы
nuzhnoff
Дата 9.4.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Задача: сложить числа  двухзначного числа.
Код

<script language="JavaScript" type="text/javascript">
var a=prompt('Введите число X','');

var c=a.substr(0,1);
var d=a.substr(1,1);

var e=eval(c+d);

document.write(e);

</script>

 При вводе числа 12 должно получаться число 3 но пишет 12. Скажите где ошибка в коде?
Спасибо.
PM MAIL   Вверх
нуп
Дата 9.4.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 12
Всего: 33



Код

var e = parseInt(c) + parseInt(d);

PM MAIL   Вверх
nuzhnoff
Дата 9.4.2010, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Спасибо большое!
PM MAIL   Вверх
IDVsbruck
Дата 9.4.2010, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



нуп не совсем прав.
В зависимости от браузера и платформы сумма цифр ввода "09" может быть как 9, так и 10.
9 - десятичное, а 10 - восьмеричное.

Суть в том, что если не указывать радикс у parseInt, то строку "0" может привести не к десятеричному нулю, а к восьмеричному. А js такой оригинальный язык, что первое слагаемое задает тип суммы, то есть второе приведется в восьмеричному виду и на выходе получим 10 (если точнее, то 010).

Лучше радикс у parseInt всегда указывать явно: parseInt(c, 10);

Добавлено через 1 минуту и 33 секунды
Прдн, десятичную 9 неправильно привел в восьмеричную систему. Везде вместо 10 подразумевается 11 (0, 01, 02, 03, 04, 05, 06, 07, 10, 11, 12, ...)
PM MAIL   Вверх
нуп
Дата 9.4.2010, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 12
Всего: 33



Точно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.