簡體   English   中英

在Java中處理NaN的正確方法是什么?

[英]What is the right way to handle NaN in Java?

例如,如果您正在計算精度

p = correct / total

你能確保你不要除以零:

double p;
if (total == 0.0) {
  p = 0.0;
}
else {
  p == correct / total;
}

或者檢查你是否得到了NaN?

double p = correct / total;
if (Double.isNaN(p)) {
  p = 0.0;
}

方法有益,還是個人偏好?

我會使用第一種方法,但不是比較為0,而是比較Math.abs(total) < TOLERANCE ,其中TOLERANCE是一些小值,如0.0001。 這將防止非常接近0的結果偏離結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM