Помощь в переводе значений слайдера jquery
У меня есть ползунок jQuery, который пользователь может перетащить, выбирая значения от 0-100 (или 1-100).
Я хочу использовать значение ползунка, которое пользователь выбирает в процентах от другого значения переменной.
Это для того, чтобы выработать пенсионную стоимость пользователей и единовременную выплату. Идея заключается в том, что чем выше значение ползунка, тем больший процент пенсии пользователей используется в качестве пенсионной жертвы, что, в свою очередь, увеличивает их единовременную выплату.
например:
ФСБ = 400000
pension_2008 = fsb / 80 - (pensionSacrifice);
значение ползунка = от 0 до 100 (устанавливается пользователем)
(максимальное значение, которое может иметь pensionScarifice, - это четверть значения pension_2008)
тогда моя формула устанавливается как:
pensionSacrifice = parseInt(pension_2008) /4 *(lumpSumSlide)/100;
ответ (если пользователь скользит до 100) должен быть = 1250
напр.
пенсионный фонд 5000/4 = 1250
*100 /100 = 1250
однако текстовое поле my pensionSacrifice возвращает значение 1001.25, а pension_2008 = 4005.05
и иногда я получаю немного противоречивые результаты, когда перемещаю ползунок вперед и назад.
размер пенсии должен варьироваться от 0 до 1250 (но идет от 0 до 1001)
pension_2008 должен варьироваться от 3750 до 5000 (но идет примерно от 4000 до 5000)
кто-нибудь знает, что не так с моей формулой, пожалуйста?
может быть, мне следует установить минимальное и максимальное значение слайдера в переменное значение, а не 0-100, и вычислить его в процентах?
Я могу представить полный код, если потребуется, но просто пытаюсь сделать его простым.
Что я уже пробовал:
function doMath() { //variable = value (declare all variables) var lumpSumSlide = $("#slidervalue").val(); var stdlumpSum = $("#stdlumpSum").val(); var pension_2008 = $("#pension_2008").val(); var annualSalary = $("#annualSalary").val(); var fsb = $("#fsb").val();//final salary benefits var years = $("#years").val();//years they have paid into scheme var pensionSacrifice = $("#pensionSacrifice").val();//members chosen pension sacrifice var maxPensionSacrifice = $("#pensionSacrifice").val();//max pension one can give up //other values - max lump sum/tax free lumpsum etc //put maths calcs here fsb = (annualSalary * years); pension_2008 = fsb/80 - (pensionSacrifice); //+parseInt(annualSalary); stdlumpSum = pension_2008 * 3; maxPensionSacrifice=pension_2008/4; pensionSacrifice = maxPensionSacrifice * (lumpSumSlide)/100; //round off calc to 2 dec places $("#pension_2008").val(custRound(pension_2008,2)); $("#annualSalary").val(custRound(annualSalary,2)); $("#fsb").val(custRound(fsb,2)); $("#stdlumpSum").val(custRound(stdlumpSum,2)); $("#pensionSacrifice").val(custRound(pensionSacrifice,2)); $("#maxPensionSacrifice").val(custRound(maxPensionSacrifice,2)); } //round off function function custRound(x,places) { return (Math.round(x*Math.pow(10,places)))/Math.pow(10,places) }