在VBScript中将值的一个范围映射到另一个范围

问题描述:

我需要将范围为1-320的值转换为范围在500-2500范围内的范围内的等价值,并且我需要在VBScript中执行此操作。在VBScript中将值的一个范围映射到另一个范围

是否有一个类似于map()的函数可以为我做到这一点?我不能在这个特定的用例中包含任何外部库。

+0

你所说的“等值”的意思是将其转换为范围b1b2?你只是在@ phimuemue的回答中寻找线性函数吗? –

你的意思是你想将1和320之间的任何数字转换为500和2500之间的相应数字,这样1对应于500,320对应2500?

如果是这样,你可以按如下做到这一点:让x是你原来的号码和y(1和320之间)被(500〜2500)的目标号码:

y = ((x-1)/319) * 2000 + 500 

在一般情况下,如果你有一个范围a1a2并想用

y = ((x - a1)/(a2 - a1)) * (b2 - b1) + b1 
+0

谢谢,我现在甚至问这个问题有点愚蠢我已经看到了答案:) – SimonJGreen