Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проблема с переводом строки в число (https://javascript.ru/forum/misc/18242-problema-s-perevodom-stroki-v-chislo.html)

winson 22.06.2011 23:07

проблема с переводом строки в число
 
собственно САБЖ.... убил несколько дней - понять не могу... на JS раньше не кодил.

var sum = 0, w = 0;
function updlst(){

$('#ingrlist tbody').find("#sum").remove();
$('#ingrlist tbody').each(function(){
sum = + parseInt($(this).find(".p").text());
w = + parseInt($(this).find(".w").text());
}).append('<tr id="sum"><td>Итого:</td><td>'+w+'</td><td>'+sum+'</td></tr>');
};

в итоге получаю: 150+20+30+50 = 150203050, а не 250

parseInt куда только не вставлял.... строго не судите, помогите плиз:(

reutovo 22.06.2011 23:28

Попробуйте Number() вместо parseInt. Или Number(parseInt(ваш_код))

Sweet 23.06.2011 00:00

Цитата:

Сообщение от winson
убил несколько дней - понять не могу

Не верю. Невозможно потратить столько времени на перевод строки в число.
Цитата:

Сообщение от reutovo
Или Number(parseInt(ваш_код))

Бред. parseInt(x) === Number(parseInt(x)) при любом x.

reutovo 23.06.2011 00:32

Цитата:

Сообщение от Sweet (Сообщение 110052)
Не верю. Невозможно потратить столько времени на перевод строки в число.
Бред. parseInt(x) === Number(parseInt(x)) при любом x.

Признаю, промахнулся.

winson 23.06.2011 07:36

Цитата:

Не верю.
Так оно и было... Гуглил, читал, пробовал, снова гуглил, снова читал, но ответов так и не было найдено

теперь совсем ничего не понимаю... Вместо "w" на выводе написал "typeof w", оказалось переменная уже number, но складывает по прежнему как строку

ksa 23.06.2011 10:32

Цитата:

Сообщение от winson
в итоге получаю: 150+20+30+50 = 150203050, а не 250

Бивас, тест...

var a='150 слонов'
var b='20 тюков'
var c='30 ящиков'
var d='50 погонщиков'
a=parseInt(a)
b=parseInt(b)
c=parseInt(c)
d=parseInt(d)
var summa=a+b+c+d
alert(summa)

Sweet 23.06.2011 11:10

Я думаю, что имеет смысл сделать так
sum += parseInt...
вместо
sum = + parseInt...

ksa 23.06.2011 11:35

Sweet, так это смотря в каком контексте скрипта смотреть... :)

Sweet 23.06.2011 11:46

Цитата:

Сообщение от ksa
смотря в каком контексте скрипта смотреть

В контексте суммирования. В контекте приведения к числу чем +parseInt(x) отличается от Number(parseInt(x)) в плане осмысленности?:)

ksa 23.06.2011 14:20

Sweet, я к тому, что присваение не то, что присвоение с суммированием... :)


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