Не правильно добавляет количество в поле

113
18 марта 2022, 21:20

Пытаюсь понять в чем проблема но уже не могу сам, думал ограничить через .toFixed, но как-то не вышло или я не так его прописал. Есть поле куда вводиться количество, и две кнопки + и -. Впринципе добавляет и отнимает по 0.1 вполне нормально но переодически проскакивает вместо 1.4 например 1.4000000000000001, далее 1.5000000000000002, 1.6000000000000003 и так далее.

Если есть еще ошибки синтаксиса или еще что-то в виде совета на будущее буду рад прочитать.

    function validate_pole_product_options (val, product_option_value_id, znak, minimumvalue, maximumvalue) {
        val.value = val.value.replace(/[^[+-]?\d+\.?\d*,]/g, '');
        if (maximumvalue < 0) maximumvalue = 1000;
        input_val = $('.pro_'+product_option_value_id+' .plus-minus');
        quantity = parseFloat(input_val.val());
        <?php if ($q_zavisimost) { ?>
        if(znak=='+' && input_val.val() < maximumvalue) input_val.val(quantity+0.1);
        else if(znak=='-' && input_val.val() > minimumvalue) input_val.val(quantity-0.1);
        else if(znak=='=' && input_val.val() < maximumvalue && input_val.val() < maximumvalue) input_val.val(input_val.val());
        if (quantity < 0 || quantity < minimumvalue) {
            input_val.val(minimumvalue);
            val.value = minimumvalue;
        } else if (quantity > maximumvalue) {
            input_val.val(maximumvalue);
            val.value = maximumvalue;
        }
        <?php } else { ?>
        if(znak=='+') input_val.val(quantity+0.1);
        else if(znak=='-' && input_val.val() > minimumvalue) input_val.val(quantity-0.1);
        else if(znak=='=' && input_val.val() > minimumvalue) input_val.val(input_val.val());
        if (quantity < 0 || quantity < minimumvalue) {
            input_val.val(minimumvalue);
            val.value = minimumvalue;
        }
        <?php } ?>
    }
    function get_revpopup_cart_pr_option_quantity (product_option_value_id) {
        input_val = $('.pro_'+product_option_value_id+' .plus-minus').val();
        quantity  = parseFloat(input_val);
        return quantity;
    }
<td class="text-center options_buy_quantity">
<div class="number">
    <div class="frame-change-count">
        <div class="btn-plus">
            <button type="button" onclick="validate_pole_product_options(this,<?php echo $option_value['product_option_value_id']; ?>,'+',<?php echo $minimum; ?>,<?php echo $option_value['quantity']; ?>);">+</button>
        </div>
    <div class="btn-minus">
            <button type="button" onclick="validate_pole_product_options(this,<?php echo $option_value['product_option_value_id']; ?>,'-',<?php echo $minimum; ?>,<?php echo $option_value['quantity']; ?>);">-</button>
        /div>
        </div>
            <input type="text" name="quantity" class="plus-minus" value='<?php echo $minimum; ?>' onchange="validate_pole_product_options(this,<?php echo $option_value['product_option_value_id']; ?>,'=',<?php echo $minimum; ?>,<?php echo $option_value['quantity']; ?>);" onkeyup="validate_pole_product_options(this,<?php echo $option_value['product_option_value_id']; ?>,'=',<?php echo $minimum; ?>,<?php echo $option_value['quantity']; ?>);">
</div>
</td>   
Answer 1

Все верно, с помощью toFixed проблема у меня решилась

parseFloat((1.5000000000000002).toFixed(1))
READ ALSO
Как сделать такой parallax эффект?

Как сделать такой parallax эффект?

Как сделать такой эффект, как на сайте https://wwwfotonaut

181
navigator.clipboard.writeText() не работает

navigator.clipboard.writeText() не работает

Есть php, он при определённых событиях выводит button

156
ReactJS: Как присвоить переменным результат fetch(список объектов)?

ReactJS: Как присвоить переменным результат fetch(список объектов)?

Новичок в js: Необходимо использовать переменные storeProducts(массив объектов) и detailProduct(конкретный объект) далее в программе, но они не видны за пределами...

70