2016-12-29 7 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

Действительно ли это говорит «undefined»? Какой код производит это? Это не концепция 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 

, который не подходит для «не числа».

Смежные вопросы