Javascript 将滑块值从点转换为kg

Javascript 将滑块值从点转换为kg,javascript,css,math,Javascript,Css,Math,我正在编写一个同事代码,并试图理解这里的数学 我有一个值为0-120的滑块,用于定义将根据滑块位置(0-120值)转换为kg的重量值。这是sx变量 首先,我们假设以下值: 0 on slider => 88 lbs => 39.9 kg 146.19469026548674 on slider => 300 lbs => 136.078 kg 1kg is 2.2lbs 我需要的是将sx变量转换成kg。 低于88磅的任何值都将得到0,高于300磅的任何值都将得到1

我正在编写一个同事代码,并试图理解这里的数学

我有一个值为
0-120
的滑块,用于定义将根据滑块位置(0-120值)转换为
kg
的重量值。这是
sx
变量

首先,我们假设以下值:

0 on slider => 88 lbs => 39.9 kg

146.19469026548674 on slider => 300 lbs => 136.078 kg

1kg is 2.2lbs 
我需要的是将sx变量转换成kg。 低于
88
磅的任何值都将得到0,高于
300
磅的任何值都将得到120作为sx值

更新

如果我使用数据库中存储为kg的值,如何将其转换为
sx
这就是我目前所做的:

sx = (weightVal-40)*1.25;

其中
weightVal
是数据库中的kg-val。

这应该是您需要的:

kg=39.9-sx*(136.078-39.9)/120

详细内容:

滑块范围(sx):0-120

重量范围(wlb):88-300

体重范围(wkg):39.9-136.078

换算系数kg->lbs:1kg=2.20462 lbs

将滑块(sx)转换为重量千克(wkg): *假设sx限制在0到120之间的值 *如果sx=0,则wkg=39.9 *如果sx=120,则wkg=136.078 *否则wkg=39.9+sx*(136.078-39.9)/120 以千克(wkg)为单位的重量等于滑块的底部值(0)加上滑块位置(sx)指示的滑块总范围(136.078-39.9)的比例

将重量千克(wkg)转换为滑块位置(sx): *sx必须在0-120范围内 *如果wkg<39.9,则sx=0 *如果wkg>136.078,则sx=120 *否则sx=((wkg-39.9)/(136.078-39.9))*120 滑块位置(sx)等于重量大于底部值(wkg-39.9)的量,作为滑块(136.078-39.9)表示的总重量范围转换为滑块位置范围(120)的比例

将滑块(sx)转换为重量磅(wlb): *假设sx限制在0到120之间的值 *如果sx=0,则wlb=88 *如果sx=120,则wlb=300 *否则wlb=88+sx*(300-88)/120 以磅(wlb)为单位的重量等于滑块的底部值(0)加上滑块位置(sx)指示的滑块总范围(300-88)的比例

将重量磅(wlb)转换为滑块位置(sx): *sx必须在0-120范围内 *如果wlb<88,则sx=0 *如果wlb>300,则sx=120 *否则sx=((wlb-88)/(300-88))*120 滑块位置(sx)等于重量大于底部值(wlb-88)的量,作为滑块(300-88)表示的总重量范围转换为滑块位置范围(120)的比例

或者你可以用磅计算,并用上面的换算法换算成千克

然后需要小心,以确保在浮点、有符号int和无符号int值之间转换时不会遇到截断或溢出错误


我希望这有帮助

我想这是一个很简单的数学问题,我现在就明白了,但我想比较一下。计算的结构是正确的,只是值有一些微小的变化。因此,我将使用sx=(weightVal-39.9)*120/(136.078-39.9),然后在代码中添加边界检查,用它来处理weightVal<39.9和>136.078。您能告诉我如何从kg到sx吗。然后我会说正确答案当我向右滚动时,从87磅到-124磅。我的lbs算法是:
varLBS=Math.ceil(parseInt(2.20462*kg))你能解释一下计算方法吗?首先是87的底值。这是由parseInt调用引起的:39.9 kg*2.20462=87.964338。parseInt返回87,因此Math.ceil返回87。文档建议也使用parseInt设置基数。