Олег Б.
292 сообщения
#14 лет назад
Затуп тут случился у меня.
Не могу правильно приплюсануть к переменной значение.
Делаю так:

var price_cart=price_cart+1000;

получаю в html: "значение price_cart" 1000, т.е. у меня всесто того, что бы складывать, просто объединяет строки.
Понимаю, что вопрос тупой, но все же
Максим Б.
203 сообщения
#14 лет назад
var price_cart = parseInt(price_cart) + 1000;


вместо parseInt, возможно придется использовать parseFloat:

Роман П.
1599 сообщений
#14 лет назад
И чо вы хотите, когда + строку к строке? Какой тип у price_cart?

Оффтопик
кто там говорил, что паскаль отстой, а вебпрограммеры не быдлокодеры в большинстве своем?))
Олег Б.
292 сообщения
#14 лет назад
Цитата ("Paralysed"):
И чо вы хотите, когда + строку к строке? Какой тип у price_cart?

число. тупо нада сложить 2 числа. потому и пишу что пипец туплю.
Роман П.
1599 сообщений
#14 лет назад
Цитата ("bel0v"):
число.


откуда это взяли-то? Просто сами подумали типа пусть будет число?) а JS решил, что это строка)
Олег Б.
292 сообщения
#14 лет назад
Так, понятно, что ничего не понятно %) Теперь осталось решить вопрос, каким образом мне строку привести к типу "число"?
Роман П.
1599 сообщений
#14 лет назад
Maxim_belkin выше ж все написал

ну или тупо price_cart = price_cart * 1 + 1000; ну т.е. умножить на 1, JS сам все сделает.
Олег Б.
292 сообщения
#14 лет назад
Maxim_belkin, спасибо.
Цитата ("Paralysed"):

ну или тупо price_cart = price_cart * 1 + 1000; ну т.е. умножить на 1, JS сам все сделает.

тупой способ тоже ничего
Вадим Т.
3240 сообщений
#14 лет назад
Цитата ("maxim_belkin"):
var price_cart = parseInt(price_cart) + 1000;

Если не планируете использовать чиста в восьмиричной системе счисления, а лишь обычные десятичные, тогда замените parseInt(price_cart) на parseInt(price_cart, 10).
Это очень распространенная ошибка.
Олег Б.
292 сообщения
#14 лет назад
Цитата ("tvv"):
Если не планируете использовать чиста в восьмиричной системе счисления, а лишь обычные десятичные, тогда замените parseInt(price_cart) на parseInt(price_cart, 10).
Это очень распространенная ошибка.

мм...ну мне по сути эти числа нужно только что бы их в dom`е менять, не больше не меньше. Но, раз так правильней, значит будет так ):
Вадим Т.
3240 сообщений
#14 лет назад
Цитата ("bel0v"):
мм...ну мне по сути эти числа нужно только что бы их в dom`е менять, не больше не меньше. Но, раз так правильней, значит будет так ):

Дело не только в том что это правильнее, дело в том, что это будет корректно работать на большем количестве наборов входных данных.
Чтобы было более понятно, посмотрите оба варианта:

<script>
var s = '0800';
var i = parseInt(s) + 1000;
var i10 = parseInt(s, 10) + 1000;

alert(i);
alert(i10);
</script>

Думаю, тут понятно, почему получается такой результат?
Олег Б.
292 сообщения
#14 лет назад
Цитата ("tvv"):
Думаю, тут понятно, почему такой результат?

да, спасибо )