将float NaN转换为0

时间:2013-08-13 22:20:19

标签: arraylist floating-point

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

float prob = (success.size()*1f)/(trial.size());
System.out.println(prob); 
如果“trial.size()”为0,

将返回“NaN”。在这种情况下,我希望prob等于0,而不是“NaN”。零可以是整数,字符串,我不在乎。

有关如何完成此任务的任何建议?

由于

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

检查一下。避免被零除。

float prob = 0;
if( trial.size() > 0 ) prob = (float) success.size() / trial.size();

答案 2 :(得分:1)

trialSize = trial.size(); 
float prob = 0; 
if (trialSize != 0){
    prob = (success.size()*1f)/(trialSize);
}
System.out.println(prob); 

答案 3 :(得分:-1)

也许你使用if语句

if result == NaN
  return 0
end