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设置基数。