Странно себя ведет арифметический оператор
Добрый день!
Я только начал учиться программировать, поэтому вам может показаться, что вопрос очень глупый. Однако, мне не к кому обратиться, поэтому буду благодарен, если поможете разобраться. Решил написать для начала простенькую программу расчета выплат по кредиту. Однако в расчете выплаты какая-то ошибка, поскольку цифры получаются совсем не те, которые ожидаются. Посмотрите, пожалуйста. //Программа расчета процентов по кредиту 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, время: 04:55. |