如何在java中给定范围内find百分比

我有一个给定的范围,从“分钟”到“最大”。 min表示为100%,max表示为0%。 平均值(min + max)/ 2表示为50%。

我将给出的input是在[min,max]范围内的值“x”,输出应该是对应于所提供的input的百分比。

例如,考虑范围[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的值是多less,都应计算相应的百分比。

我已经尝试了各种逻辑,但我似乎无法得到这个问题的正确的公式。

如果开始和结束是variables来存储值然后

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% 

在Java中,相应的分配是

 double percentage = 1.0f - Math.Abs(x-min)/Math.Abs(max-min); 

其中绝对函数用于涵盖maxmin符号不同的情况。