在VBScript中将值的一个范围映射到另一个范围
问题描述:
我需要将范围为1-320的值转换为范围在500-2500范围内的范围内的等价值,并且我需要在VBScript中执行此操作。在VBScript中将值的一个范围映射到另一个范围
是否有一个类似于map()的函数可以为我做到这一点?我不能在这个特定的用例中包含任何外部库。
答
你的意思是你想将1和320之间的任何数字转换为500和2500之间的相应数字,这样1对应于500,320对应2500?
如果是这样,你可以按如下做到这一点:让x
是你原来的号码和y
(1和320之间)被(500〜2500)的目标号码:
y = ((x-1)/319) * 2000 + 500
在一般情况下,如果你有一个范围a1
到a2
并想用
y = ((x - a1)/(a2 - a1)) * (b2 - b1) + b1
+0
谢谢,我现在甚至问这个问题有点愚蠢我已经看到了答案:) – SimonJGreen
你所说的“等值”的意思是将其转换为范围
b1
到b2
?你只是在@ phimuemue的回答中寻找线性函数吗? –