如何在java中找到给定范围内的百分比

时间:2014-03-19 06:44:04

标签: java excel math numbers formula

我有一个给定的范围,从“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值如何,都应计算相应的百分比。

我尝试了各种逻辑,但我似乎无法为这个问题找到合适的公式。

2 个答案:

答案 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);

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