2016-12-29 44 views
-2

我想计算百分比,此处的数据是完全动态的。结果未定义为java中的百分比计算

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; 
} 

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

+0

请分享完整的相关代码 – sidgate

+0

不确定是否是我,但我不知道根据您发布的信息,您可能会遇到什么问题。 –

+0

它实际上是否说“未定义”?什么代码生产?这不是Java概念afaik。 – Carcigenicate

回答

0

您应该先检查总数。

被零除是不允许的,这就是为什么它给出了一个错误

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

注:!=表示不等于

0
finalValue = ((sample1*100)/total) 

您除以零。

所以你必须先检查total

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

0

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

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

此打印:

NaN 

这是“不是数字”的缩写。