Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сложение в js

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Aricus
Отправлено: 18 Октября, 2014 - 00:46:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var Kat = document.getElementById("askKat");
  2. var a = Kat.value + 1;

Kat.value принимает только целочисленные значения. Тем не менее, он тут поступает как с текстовыми переменными, например:
67 + 1 = 671
Как сделать, чтобы он складывал нормально?
 
 Top
teddy
Отправлено: 18 Октября, 2014 - 01:45:20
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var a = parseInt(Kat.value) + 1;
 
 Top
nerv
Отправлено: 18 Октября, 2014 - 10:17:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




мало плюсов Ха-ха

CODE (javascript):
скопировать код в буфер обмена
  1. var a = +Kat.value1 + +Kat.value2;


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Октября, 2014 - 22:45:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




teddy пишет:
CODE (javascript):
скопировать код в буфер обмена
  1. var a = parseInt(Kat.value) + 1;

Опера тебе скажет привет, а еще бывает NaN, пиши так:
CODE (javascript):
скопировать код в буфер обмена
  1. var a = (parseInt(Kat.value, 10) || 0) + 1;
 
 Top
Aricus
Отправлено: 18 Октября, 2014 - 22:55:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Не числовым значениям там взяться не от куда. А что не так с оперой?
 
 Top
IllusionMH
Отправлено: 19 Октября, 2014 - 01:26:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Aricus, в Opera12.5- работа parseInt соответствует ES3, а не ES5 поэтому могут быть проблемы со строками которые начинаются с нуля(если интересно найдете раздичие). Но NaN там быть не должно
 
 Top
Sail
Отправлено: 20 Октября, 2014 - 08:42:32
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Aricus пишет:
Не числовым значениям там взяться не от куда.

Из html-формочки нам что приходит?
А в сложении строк есть некоторые особенности...
Для справки: Сложение строк, бинарный +
Затем там описывается действие унарного плюса.
И, как упоминал nerv: "Мало плюсов"...
 
 Top
DelphinPRO
Отправлено: 20 Октября, 2014 - 09:54:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




В целях экономии символов предлагаю такой вариант: Улыбка
CODE (javascript):
скопировать код в буфер обмена
  1. var Kat = document.getElementById("askKat");
  2. var a = ~~Kat.value + 1;

тут и на NaN пофиг Улыбка За ноль посчитает

(Отредактировано автором: 20 Октября, 2014 - 09:56:41)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
nerv
Отправлено: 20 Октября, 2014 - 12:48:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




DelphinPRO пишет:
тут и на NaN пофиг За ноль посчитает

не всегда подойдет

CODE (javascript):
скопировать код в буфер обмена
  1. ~~'1.1' // 1
  2. +'1.1' // 1.1
  3. Number('1.1') // 1.1


твой пример из серии

(Отредактировано автором: 20 Октября, 2014 - 12:50:44)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
Panoptik
Отправлено: 20 Октября, 2014 - 15:15:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)





- стандартный хак для приведения типов к числовым

(Отредактировано автором: 20 Октября, 2014 - 15:15:48)



-----
Just do it
 
 Top
esterio
Отправлено: 20 Октября, 2014 - 17:21:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




не люблю я хакы поетому
CODE (javascript):
скопировать код в буфер обмена
  1. parseInt(val, 10);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB