我正在研究同事代码,并试图在这里理解数学。

我有一个带有0-120值的滑块,用于定义将根据滑块的位置(0-120值)转换为kilograms的重量值。这是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。

最佳答案

这应该是您需要的:

公斤= 39.9-sx *(136.078-39.9)/ 120

详细地:

滑块范围(sx):0-120

体重范围(wlb):88-300

体重范围(wkg):39.9-136.078

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

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

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

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

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

或者,您可以以磅为单位进行计算,并使用上面的转换将其转换为公斤。

然后只需注意确保您不会在浮点数,有符号int和无符号int值之间转换时遇到截断或溢出错误。

我希望这有帮助。

09-26 02:24