我不知道如何描述它(所以我无法查找)但我需要帮助。假设我有0到200中的100,我如何将数字比为0到100所以它会像50?简单地将数字与较小或较大的尺寸进行比较?
答案 0 :(得分:2)
计算原始最大值与新最大值之间的比率:
double k = (double)newMax / (double)oldMax
在您的示例中,您最终会得到值0.5
。
然后将该值乘以比率:
double newValue = value * k;
如果您想要一个整数值,请将其四舍五入并转换为整数:
int newValue = (int)Math.Round(value * k);
答案 1 :(得分:1)
一般来说,当“旧”和“新尺度”的最小值不一定为0时,解决方案如下:
ratio =(oldValue - oldMin)/(oldMax - oldMin)
newValue = newMin +(newMax - newMin)* ratio
答案 2 :(得分:0)
double myRatio, maxValue, newValue;
//value retrieval logics.
double result = (myRatio / maxValue) * newMaxValue;
你必须填写第一行的双打。
这是我说的最短的代码。
答案 3 :(得分:-1)
((Max - value) / Max) * (newMax)