0

我想写出一组概率。事实证明,在某些情况下,我最终除以零,这导致 NaN 的概率。例如,如果“success”和“trial”是 Arraylists,那么

float prob = (success.size()*1f)/(trial.size());
System.out.println(prob); 

如果“trial.size()”为 0,将返回“NaN”。在这种情况下,我希望概率等于 0,而不是“NaN”。零可以是整数,字符串,我不在乎。

关于如何做到这一点的任何建议?

谢谢

4

4 回答 4

2

只需检查 NaN 并将其设置为 0。这有什么难的?检查 NaN 的一种简单方法是将数字与其自身进行比较,尽管使用 isNaN 可能更干净。

float prob = (success.size()*1f)/(trial.size());
prob = (prob == prob) ? prob : 0.0f;
System.out.println(prob); 
于 2013-08-13T22:22:26.430 回答
1

只是检查一下。避免被零除。

float prob = 0;
if( trial.size() > 0 ) prob = (float) success.size() / trial.size();
于 2013-08-13T22:22:35.227 回答
1
trialSize = trial.size(); 
float prob = 0; 
if (trialSize != 0){
    prob = (success.size()*1f)/(trialSize);
}
System.out.println(prob); 
于 2013-08-13T22:23:15.397 回答
-1

Maybe if you use an if statement

if result == NaN
  return 0
end
于 2013-08-13T22:31:04.413 回答