Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблема в сложении двух переменных. (https://javascript.ru/forum/misc/18653-problema-v-slozhenii-dvukh-peremennykh.html)

poseydon 10.07.2011 11:15

Проблема в сложении двух переменных.
 
Доброе время всем форумчанам.

Со скриптами мало общался, а тут получил задание подправить код, необходимо сложить две переменных, что я только не делал, но сложение так и нет только идет склейка. Два числа - складываются, а вот уже переменная с числом - склеивается :blink:

вот кусочек кода:

var tb=document.getElementById('tb').value;
ttt.value = ttt.value + 'Расчет денежного довольствия \n\nОклад по воинской должности: ';
ttt.value = ttt.value + document.getElementById('tb').options[document.getElementById('tb').selectedIndex].text;
var kt=document.getElementById('kt').value;
ttt.value = ttt.value + '\nОклад по воинскому званию: ';
ttt.value = ttt.value + document.getElementById('kt').options[document.getElementById('kt').selectedIndex].text;
var rez=tb+kt;
rez = Math.round(rez);
ttt.value = ttt.value + '\nСтраховая премия: ';
ttt.value = ttt.value + rez;
ttt.value = ttt.value + ' руб.'

подскажите что не так
спс.

Kolyaj 10.07.2011 11:20

Цитата:

Сообщение от poseydon
Два числа - складываются, а вот уже переменная с числом - склеивается

Потому что переменная со строкой, а не с числом.

B@rmaley.e><e 10.07.2011 11:23

Свойство value хранит строковое представление числа. Для сложения нужно перевести его в обычное число, например применив parseInt.

poseydon 10.07.2011 11:38

аааа вроде понял...
тоесть необходимо сделать так:

var tb=document.getElementById('tb').value;
ttt.value = ttt.value + 'Расчет денежного довольствия \n\nОклад по воинской должности: ';
ttt.value = ttt.value + document.getElementById('tb').options[document.getElementById('tb').selectedIndex].text;
tb = parseInt (tb, 10);

var kt=document.getElementById('kt').value;
ttt.value = ttt.value + '\nОклад по воинскому званию: ';
ttt.value = ttt.value + document.getElementById('kt').options[document.getElementById('kt').selectedIndex].text;
kt = parseInt (kt, 10);

var rez=tb+kt;
rez = Math.round(rez);
ttt.value = ttt.value + '\nСтраховая премия: ';
ttt.value = ttt.value + rez;
ttt.value = ttt.value + ' руб.'

думаю я правельно понял, и такая конструкция должна заработать.
пойду попробую.

poseydon 10.07.2011 18:13

спс всем все получилось


Часовой пояс GMT +3, время: 02:32.