0

我不知道如何很好地描述它(所以我无法查找)但我需要帮助。假设我在 0 到 200 中有 100 个,我如何将这个数字与 0 到 100 进行比值,这样它就像 50?简单地将数字与更小或更大的大小进行比率?

4

4 回答 4

2

计算原始最大值与新最大值之间的比率:

double k = (double)newMax / (double)oldMax

在您的示例中,您最终会得到 value 0.5

然后只需将值乘以比率:

double newValue = value * k;

如果您想要一个整数值,请将其四舍五入并转换为整数:

int newValue = (int)Math.Round(value * k);
于 2013-05-07T06:04:24.623 回答
1

通常,当“旧”和“新标度”上的最小值不一定为 0 时,解决方案如下:

比率 = ( oldValue - oldMin ) / ( oldMax - oldMin )

newValue = newMin + (newMax - newMin) * 比率

于 2013-05-07T09:28:23.867 回答
0
double myRatio, maxValue, newValue;
//value retrieval logics.
double result = (myRatio / maxValue) * newMaxValue;

你必须填写第一行的双打。这是我要说的最短的代码。

于 2013-05-07T06:09:16.657 回答
-1
((Max - value) / Max) * (newMax)
于 2013-05-07T05:56:56.690 回答