powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Изменение количества нажатием + и -
7 сообщений из 7, страница 1 из 1
Изменение количества нажатием + и -
    #39332479
plusminus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно ведет себя отображаемое количество товара при изменении +/-. Значения идут 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6, 0.7, 0.7999999999999999, 0.8999999999999999, 0.9999999999999999, 1.0999999999999999, 1.2, 1.3, 1.4000000000000001, 1.5000000000000002, 1.6000000000000003, 1.7000000000000002, 1.8000000000000003, 1.9000000000000004, 2, 2.1, 2.2... Вместо просто шага через 0.1

ссылка
Логин и пароль: 1

Сами разработчики Virtuemart никак не отвечают по этому поводу на форуме. Как можно решить эту проблему, чтобы отображался только один округленный знак после запятой?
...
Рейтинг: 0 / 0
Изменение количества нажатием + и -
    #39332482
plusminus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрел отладчиком Chrome. Кажется /component/js/vmprices.js за это отвечать должен. Но что в нем не так может быть
...
Рейтинг: 0 / 0
Изменение количества нажатием + и -
    #39332524
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plusminusПосмотрел отладчиком Chrome. Кажется /component/js/vmprices.js за это отвечать должен. Но что в нем не так может быть
Всё в нём так, просто так числа устроены: https://learn.javascript.ru/number#неточные-вычисления
...
Рейтинг: 0 / 0
Изменение количества нажатием + и -
    #39332708
plusminus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, спасибо.

Изменил в Virtuemart.incrQuantity и Virtuemart.decrQuantity на quantity.val((Qtt*10 + Ste*10)/10); и кнопками +/- количество вроде изменяется нормально.
Но если допустим дощелкать до 0,5 и потом выделить input text, то значение изменится на 0,4.
А если до 1,5 и потом выделить, то снова возвращаются 1.4000000000000001.

Это где искать в этом js не пойму.
...
Рейтинг: 0 / 0
Изменение количества нажатием + и -
    #39332721
plusminus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю что за remainder в коде и что он делает, но замена на obj.value = (quantity*10-remainder*10)/10; помогла. Спасибо за подсказку.
...
Рейтинг: 0 / 0
Изменение количества нажатием + и -
    #39332760
plusminus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, поторопился. Не сработало с reminder.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Virtuemart.checkQuantity = function (obj,step,myStr) {
    // use the modulus operator "%" to see if there is a remainder
    var remainder=obj.value % step,
        quantity=obj.value;

    if (remainder  != 0) {
        //myStr = "'.vmText::_ ('COM_VIRTUEMART_WRONG_AMOUNT_ADDED').'";
        if(!isNaN(myStr)) alert(myStr.replace("%s",step));
		if(quantity!=remainder && quantity>remainder){
            obj.value = (quantity-remainder);
        } else {
            obj.value = step;
        }
        return false;
    }
    return true;
}



Что нужно подредактировать, чтобы округляло нормально.
...
Рейтинг: 0 / 0
Изменение количества нажатием + и -
    #39332943
plusminus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исключил дробные и заработало if ((remainder != 0) && (step >= 1))
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Изменение количества нажатием + и -
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]