我不知道如何描述它非常好(所以我不能查找它),但我需要幫助。可以說我有0到200中的100個,我怎麼把這個數字比作0到100,所以它會是50?簡單地把這個數字與一個更小或更大的大小相比?以相同的比例將數字舍入到更小或更大的尺寸
0
A
回答
-1
((Max - value)/Max) * (newMax)
+1
不需要。只有當數值恰好爲最大值的一半時才能使用。但是,如果min是零,那麼'(value/Max)* newMax'就可以工作。 – 2013-05-07 06:06:07
2
計算原始最大和新的最高的比率:
double k = (double)newMax/(double)oldMax
在你的榜樣,你最終會得到價值0.5
。
然後,只需用比乘以值:
double newValue = value * k;
如果你想要一個整數值,圓形,並轉換爲整數
int newValue = (int)Math.Round(value * k);
0
double myRatio, maxValue, newValue;
//value retrieval logics.
double result = (myRatio/maxValue) * newMaxValue;
ü得上填補了雙打第一行。 這是我說的最短的代碼。
1
一般而言,當最小不一定0上或者 '舊' 和 '新的尺度',解決方案是以下內容:
率=(屬性oldValue - oldMin)/(oldMax - oldMin)
newValue = newMin +(newMax - newMin)*比例
你試過_anything_嗎?我沒有在這裏看到任何編程問題.. – 2013-05-07 05:56:47
我不認爲這是這個問題的地方,但嘗試像(x-x1)/(x2-x1)*(nx2-nx1) (100-0)/(200-0)*(100-0) – 2013-05-07 05:59:47