@biben

Мини калькулятор расчета стоимости от количества?

Добрый день , только начинаю учиться JS подскажите пожалуйста есть мини калькулятор . Когда вводишь данные например от 0 до 2000 цена 1.5 от 2000 до 5000 цена 1.3 от 5000 до 30000 цена 1 и после 30000 цена 0.8 .Подскажите что я делаю не так .Спасибо

<script>$(function() {
        function count() {
            var a = " 2000";
            var b = "5000";
            var c = "30000";
            var sum = +$("#count_inp").val() || 0;
            if (sum <= a) {
                var result = (1.5) * sum;
                $("#result p").html(result + " Рублей")
            if (sum >= b) {
                    var result = (1.3) * sum;
                    $("#result p").html(result + " Рублей")

                }
            if (sum >= c) {
                    var result = (1) * sum;
                    $("#result p").html(result + " Рублей")

                } else $("#result p").html("Укажите расстояние");
            } else $("#result p").html("Укажите расстояние");




        }
        var s = $("#process_all_b");
        s.click(count)
    });
    </script>

<div id="calc_div">

    <div id="quantity_div"><p class="c">
        Сколько километров <br>
        <input type="text" id="count_inp"><br>
    </div>

    <div id="final_div">
        <p class="c"><button id="process_all_b" >Посчитать</button><br></p>
        <div id="result"><p class="c">0 Рублей</p></div>
    </div>
</div>
  • Вопрос задан
  • 1431 просмотр
Решения вопроса 1
@kulaeff
Front-end developer
У вас много ошибок в коде:
  1. переменные a, b, c строковые почему-то, таким образом вы сравниваете строки с числом
  2. косяки с условными переходами
  3. пропущенные фигурные скобки
  4. лишний else


Помимо этого и того, о чем сказали другие отписавшиеся, ваш код еще и написан в лоб, никакой элегантности и оптимизации.

Причесал по-быстрому тут https://jsfiddle.net/hyxt3ba2/1/. Хотя там еще работать и работать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sinster72
@sinster72
ты сравниваешь строки арифметическими операторами,
Нужно переменные a, b , и с задать числом и сумму соответственно привести к числу ну и округление результата не забыть

$(function() {
        function count() {
            var a = 2000;
            var b = 5000;
            var c = 30000;
            var sum = parseInt( $("#count_inp").val(), 10);
            if (sum <= a) {
                var result = Math.round((1.5) * sum);
                $("#result p").html(result + " Рублей")
            }else if (sum >= b) {
                    var result = Math.round((1.3) * sum);
                    $("#result p").html(result + " Рублей")

            }else if (sum >= c) {
                    var result = Math.round((1) * sum);
                    $("#result p").html(result + " Рублей")

                
            } else $("#result p").html("Укажите расстояние");
        }
        var s = $("#process_all_b");
        s.click(count)
    });
Ответ написан
Комментировать
a, b, c у вас - это символы, в ифах вы сравниваете символы. Сделайте эти переменные числами, и парсите числа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы