Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Еще один калькулятор (https://javascript.ru/forum/jquery/58192-eshhe-odin-kalkulyator.html)

gabe 09.09.2015 08:26

Еще один калькулятор
 
Доброго времени суток, в 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 и тп.

Так вот сам вопрос, как вот эти целые числа (скидку) правильно реализовать, чтобы за каждый шаг, оно считало цену со скидкой...
Заранее при много благодарен

laimas 09.09.2015 08:38

var a = 0.2, b = 102;
alert(a * (b % 100))

рони 09.09.2015 08:50

а если b = 200? :)

рони 09.09.2015 08:58

:-?
function fn(a) {
    return 100 < a ? a - .2 * (a - 100) : a
}
alert([fn(100), fn(103), fn(200)]);

laimas 09.09.2015 09:02

Цитата:

Сообщение от рони
а если b = 200?

Ну да :) А лучше уж, зная максимальное значение "хвостика", выделить его маской, а уже далее....

gabe 09.09.2015 09:51

Цитата:

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


максимальное значение вообще 10 000... Оо...
и есть многомерный массив [ [1, 100], [101, 500], [501, 1000], [1001, 5000], [5001, 10000], [10000] ]
и вот с него значения брать ;)

laimas 09.09.2015 09:55

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

gabe 09.09.2015 11:44

Цитата:

Сообщение от laimas (Сообщение 387780)
Ну так брать 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

Вот пример

рони 09.09.2015 12:23

Цитата:

Сообщение от gabe
И при 105 клиентах надо, чтобы цена была не 104.8, а 104... то есть 105 - 0.2*5...

а разве в 4 посте не так?

рони 09.09.2015 12:25

Цитата:

Сообщение от 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)]);


Часовой пояс GMT +3, время: 09:40.