Странно себя ведет арифметический оператор
Добрый день!
Я только начал учиться программировать, поэтому вам может показаться, что вопрос очень глупый. Однако, мне не к кому обратиться, поэтому буду благодарен, если поможете разобраться. Решил написать для начала простенькую программу расчета выплат по кредиту. Однако в расчете выплаты какая-то ошибка, поскольку цифры получаются совсем не те, которые ожидаются. Посмотрите, пожалуйста.
//Программа расчета процентов по кредиту
var credit = prompt("Введите размер вашего кредита");
var percentile = prompt("Введите ваш процент в годовых");
var term = prompt ("Введите количество месяцев по кредиту");
percentile = percentile/100;
var pereplata = credit*percentile;
var itog = credit+pereplata;
var vyplata = itog/term;
console.log ("Переплата по кредиту составит: " + pereplata + " руб.");
console.log ("Выплата каждый месяц составит: " + vyplata.toFixed(2) + " руб.");
|
1) prompt умеет возвращать только строки
2) оператор + для двух чисел возвращает сумму 3) оператор + для двух операндов, хотя бы один из которых не число - приводит их к строке, и конкатенирует(склеивает) "строка 1" + "строка 2" === "строка 1строка 2" 4) привести строку к числу перед суммированием можно рядом способов Они описаны в справочнике, в частности на этом сайте |
decross,
var .... = +prompt.... |
рони,
а как правильно преобразовать дробные, типа, 1/2? Я знаю, что эвалом можно, а можно еще как-то? |
krutoy,
что ты имеешь ввиду под вопросом преобразовать? Преобразовать во что? или из чего? |
Спасибо большое за подсказку. Пойду читать справочник.
|
devote,
Я имею в виду из строки , как в обычной сессии
console.log(1/2)
console.log(eval("1/2"))
тоесть, извлечь из строки числа вместе с оператором, грубо говоря, чтобы интерпретатор сразу воспринимал строку как результат применения операции -- эквивалент дробей. |
krutoy,
:)
var str = "1/2";
alert(new Function("return " + str)())
|
| Часовой пояс GMT +3, время: 11:15. |