我正在研究同事代码并试图在这里理解数学。
我有一个值为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。
答案 0 :(得分:2)
这应该是你需要的:
kg = 39.9-sx *(136.078-39.9)/ 120
详细说明:
滑块范围(sx):0 - 120
体重范围(wlb):88 - 300
体重范围(wkg):39.9 - 136.078
转换因子kg - >磅:1千克= 2.20462磅
将滑块(sx)转换为重量千克(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)所示。
将重量kgs(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)转换为重量lbs(wlb): *假设sx限制在0到120之间的值 *如果sx = 0则wlb = 88 *如果sx = 120则wlb = 300 *否则wlb = 88 + sx *(300 - 88)/ 120 以磅为单位的重量(wlb)等于滑块的底部值(0)加上滑块的总范围(300-88)的比例,如滑块位置(sx)所示。
将重量lbs(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)所代表的总重量范围的比例)。
或者你可以用磅计算并使用上面的转换转换为kgs。
然后需要注意确保在浮点,有符号int和无符号int值之间转换时不会遇到截断或溢出错误。
我希望这会有所帮助。