Конвертировать строку в числовой формат

Всем привет.

Не могу найти нигде как строку конвертировать в число. 

Есть поле Кол.дн., формат - целое число, значение 10

Есть кнопка, в меню действий, Добавить дни. По нажатию этой кнопки появляется окошко, где юзер вносит кол.дней, например, 5. 

И нужно что бы в поле Кол.дн произошел расчет, 10+5 = 15, и, соответственно, значение 10 изменилось на 15. 

Ниже пример реализации:

ExtendDeadLineButtonClick: function(caption, buttonCaption, maxCommentSize, callback, scope) {
					var controls = {
						comment: {
							dataValueType: Terrasoft.DataValueType.INTEGER,
							"Caption": {"bindTo": "Resources.Numbers.Comments"},
							customConfig: {
								className: "Terrasoft.MemoEdit",
								height: "25px",
								width: "50px"
///								maxlength: maxCommentSize
							}
						}
					};
 
					var config = {
						defaultButton: 0,
						style: {
							borderStyle: "ts-messagebox-border-style-blue visa-action",
							buttonStyle: "blue"
						}
					};
 
					Terrasoft.utils.inputBox(caption, function(result, arg) {
						if (result === "ok") {
							var comment = arg.comment.value;
							if (comment != 0) {
								var days = this.get("UsrGSApplDeadline");
								var calc = days + comment;
								this.set("UsrGSApplDeadline", calc);
							}
						}
					}, ["ok", "cancel"], this, controls, config);
			}

 

В результате, в поле Кол.дн я получаю следующее:

10+5 = 105

Тоесть, происходит конкатенация, а не сложение. 

 

Нравится

2 комментария
Лучший ответ

Здравствуйте, Павел!

В переменную comment записывается значение типа string, в результате сложения str(comment)+num(days) получаете конкатенацию. Вы можете изменить тип на числовой, модернизировав код одним из способов ниже:

1) var comment = parseInt(arg.comment.value);

2) var calc = + comment + days;

Первый вариант изменит тип переменной для всей функции в зоне видимости. Второй вариант заменит значение comment только в рамках данной строки.

С уважением, Ангелина!

Здравствуйте, Павел!

В переменную comment записывается значение типа string, в результате сложения str(comment)+num(days) получаете конкатенацию. Вы можете изменить тип на числовой, модернизировав код одним из способов ниже:

1) var comment = parseInt(arg.comment.value);

2) var calc = + comment + days;

Первый вариант изменит тип переменной для всей функции в зоне видимости. Второй вариант заменит значение comment только в рамках данной строки.

С уважением, Ангелина!

Добрый день.

 

Огромное спасибо. 

parseInt - именно то что нужно. 

Теперь работает корректно.

Показать все комментарии