Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2015, 08:26
Интересующийся
Отправить личное сообщение для gabe Посмотреть профиль Найти все сообщения от gabe
 
Регистрация: 09.09.2015
Сообщений: 12

Еще один калькулятор
Доброго времени суток, в jQuery - ui есть такая штука как .skider().
В моем варианте, при перемещении ползунка, идет расчет стоимости за 1 человека (за 1 ступень, назовем это так, +=1). Но есть так же понятие скидки. Когда значение уже на 101 ступени, а цена со скидкой уменьшается на 0.2 (то есть не 101, а 100,08). Но есть одно но! За 102 ступень, рассчитывается с 0.2, то есть нужно, чтобы на 102, оно отнимало не 0.2, а уже 0.4, на 103 - 0.6, на 104 - 0.8 и тп.

Так вот сам вопрос, как вот эти целые числа (скидку) правильно реализовать, чтобы за каждый шаг, оно считало цену со скидкой...
Заранее при много благодарен
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2015, 08:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var a = 0.2, b = 102;
alert(a * (b % 100))
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2015, 08:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

а если b = 200?
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2015, 08:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


function fn(a) {
    return 100 < a ? a - .2 * (a - 100) : a
}
alert([fn(100), fn(103), fn(200)]);
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2015, 09:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
а если b = 200?
Ну да А лучше уж, зная максимальное значение "хвостика", выделить его маской, а уже далее....
Ответить с цитированием
  #6 (permalink)  
Старый 09.09.2015, 09:51
Интересующийся
Отправить личное сообщение для gabe Посмотреть профиль Найти все сообщения от gabe
 
Регистрация: 09.09.2015
Сообщений: 12

Сообщение от laimas Посмотреть сообщение
Ну да А лучше уж, зная максимальное значение "хвостика", выделить его маской, а уже далее....

максимальное значение вообще 10 000... Оо...
и есть многомерный массив [ [1, 100], [101, 500], [501, 1000], [1001, 5000], [5001, 10000], [10000] ]
и вот с него значения брать
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2015, 09:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну так брать 1,2,3..., а не сотни и тысячи, или же?
Ответить с цитированием
  #8 (permalink)  
Старый 09.09.2015, 11:44
Интересующийся
Отправить личное сообщение для gabe Посмотреть профиль Найти все сообщения от gabe
 
Регистрация: 09.09.2015
Сообщений: 12

Сообщение от laimas Посмотреть сообщение
Ну так брать 1,2,3..., а не сотни и тысячи, или же?

Тысячи - это количество клиентов... Чего так захотели я не знаю, меня ни кто не спрашивал...
И при 105 клиентах надо, чтобы цена была не 104.8, а 104... то есть 105 - 0.2*5...
и вот как правильно вот это считать, 0.2*5, это в этом случае, со 106 - 0.2*6 = 105.8 и тп

http://codepen.io/Jonson/pen/MawGER

Вот пример

Последний раз редактировалось gabe, 09.09.2015 в 11:56.
Ответить с цитированием
  #9 (permalink)  
Старый 09.09.2015, 12:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от gabe
И при 105 клиентах надо, чтобы цена была не 104.8, а 104... то есть 105 - 0.2*5...
а разве в 4 посте не так?
Ответить с цитированием
  #10 (permalink)  
Старый 09.09.2015, 12:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от gabe
106 - 0.2*6 = 105.8
ой
function fn(n)
   {
     return n > 100 ? n - (n - 100) *.2 : n
   }
   alert([fn(104),fn(105),fn(106)]);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доделать калькулятор расчета стоимости. mazaxaka jQuery 2 08.08.2012 16:14
при выборе элемента из списка появляется еще один список maratmm Элементы интерфейса 0 07.08.2012 17:06
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Еще один вопрос по setTimeout setInterval Хранитель Света Общие вопросы Javascript 5 12.03.2009 22:37
Еще один вариант плавно раскрывающегося дива (экспандер, спойлер) Alekson Ваши сайты и скрипты 0 23.12.2008 03:01