我有一个给定的范围,从“min”到“max”。 min表示为100%,max表示为0%。平均值(min + max)/ 2表示为50%。
我将给出的输入是[min,max]范围内的值“x”,输出应该是与提供的输入相对应的百分比。
例如,考虑范围为[100,300]
if x=100 then output=100%
if x=300 then output=0%
if x=200 then output=50%
if x=150 then output=75%
if x=250 then output=25%
无论在[min,max]范围内提供的x值如何,都应计算相应的百分比。
我尝试了各种逻辑,但我似乎无法为这个问题找到合适的公式。
答案 0 :(得分:4)
如果start和end是存储值的变量,那么
1)你可以用0开始限制来结束开始 和值传递值 - 开始 2)计算百分比 3)返回100%
public static void main(String[] args) {
System.out.println(find_percent(100,300,100)+"%");
System.out.println(find_percent(100,300,300)+"%");
System.out.println(find_percent(100,300,200)+"%");
System.out.println(find_percent(100,300,150)+"%");
System.out.println(find_percent(100,300,250)+"%");
System.out.println("");
System.out.println(find_percent(20,40,20)+"%");
System.out.println(find_percent(20,40,40)+"%");
System.out.println(find_percent(20,40,25)+"%");
System.out.println(find_percent(20,40,35)+"%");
}
public static double find_percent(double start,double end,double val){
end = end- start;
val = val - start;
start = 0;
return((1-(val/end))*100);
}
输出:
100.0%
0.0%
50.0%
75.0%
25.0%
100.0%
0.0%
75.0%
25.0%
答案 1 :(得分:0)
在Java中,相应的赋值将是
double percentage = 1.0f - Math.Abs(x-min)/Math.Abs(max-min);
其中绝对函数用于涵盖max
和min
具有不同符号的情况。