Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Изменение количества нажатием + и - / 7 сообщений из 7, страница 1 из 1
24.10.2016, 08:31
    #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
24.10.2016, 08:38
    #39332482
plusminus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение количества нажатием + и -
Посмотрел отладчиком Chrome. Кажется /component/js/vmprices.js за это отвечать должен. Но что в нем не так может быть
...
Рейтинг: 0 / 0
24.10.2016, 09:43
    #39332524
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение количества нажатием + и -
plusminusПосмотрел отладчиком Chrome. Кажется /component/js/vmprices.js за это отвечать должен. Но что в нем не так может быть
Всё в нём так, просто так числа устроены: https://learn.javascript.ru/number#неточные-вычисления
...
Рейтинг: 0 / 0
24.10.2016, 13:36
    #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
24.10.2016, 13:52
    #39332721
plusminus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение количества нажатием + и -
Не знаю что за remainder в коде и что он делает, но замена на obj.value = (quantity*10-remainder*10)/10; помогла. Спасибо за подсказку.
...
Рейтинг: 0 / 0
24.10.2016, 14:22
    #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
24.10.2016, 16:26
    #39332943
plusminus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение количества нажатием + и -
Исключил дробные и заработало if ((remainder != 0) && (step >= 1))
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Изменение количества нажатием + и - / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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