对于java中的百分比计算,结果未定义

时间:2016-12-29 12:58:44

标签: java database int percentage

我想计算百分比,这里的数据是完全动态的。

int sample1 = 0;

int total = 0;

int finalValue = 0;

finalValue = ((sample1*100)/total)

这里有finalValue完全按照我想要的数据打印出来。但是当数据库中的值为0(零)时,这个简单的计算就会出错。如果您在计算器中执行计算,则表示"结果未定义"。所以在这种情况下我尝试使用if and else条件。

if(sample1>0)
{
  //execute code
}
else
{
  //sample1 = 0;
}

这个逻辑在这里不起作用。那么执行百分比计算的简单和首选方法是什么。

3 个答案:

答案 0 :(得分:0)

finalValue = ((sample1*100)/total)

你除以零。

因此,您必须先检查total

或者,如果某些数据来自数据库,则可能是 null

答案 1 :(得分:0)

你应该先检查总数。

不允许除以零,这就是它给出错误的原因

if(total != 0)
{
  //execute code
}
else
{
 throw (err) ; // handle the division by zero error
}

注意:!=表示不等于

答案 2 :(得分:0)

您可以利用double(而不是int)可以表示未定义值的事实:

    int sample1 = 0;
    int total = 0;
    double finalValue = 0;
    finalValue = ((sample1 * 100) / ((double) total));
    System.out.println(finalValue);

打印:

NaN

是“非数字”的缩写。