2011-08-08 125 views
4

我需要將範圍爲1-320的值轉換爲範圍在500-2500範圍內的範圍內的等價值,並且我需要在VBScript中執行此操作。在VBScript中將值的一個範圍映射到另一個範圍

是否有一個類似於map()的函數可以爲我做到這一點?我不能在這個特定的用例中包含任何外部庫。

+0

你所說的「等值」的意思是將其轉換爲範圍b1b2?你只是在@ phimuemue的回答中尋找線性函數嗎? –

回答

7

你的意思是你想將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

相關問題