0
SonarQube는 "부동 소수점 숫자가 평등 테스트해서는 안된다"고 주장, 다음 코드에서 버그를보고하는 rule 있습니다. 일반적으로이 규칙은 정당화되지만,이 경우 나에게 거짓 긍정 인 것으로 보입니다. 그렇다면 Double.compare
의 구문을 사용하여 해결하려면 +/-Infinity
, NaN
또는 그와 같은 중간 결과를 확인하는 것보다는이를 플래그로 지정하고 싶습니다. 분모가 0으로 나누는 것을 방지하기 위해 분모 == 0.0d를 비교하는 것이 맞습니까?
public void f(double denominator)
{
if (denominator == 0.0d)
throw new IllegalArgumentException("Division by zero.");
// code that involves division by denominator ...
}
따라서 질문 : 위의 코드가
IllegalArgumentException
을 던져 않은 경우,
denominator
으로 나누기 (
double
를 보관 표현식에서 전용)
+/-Infinity
또는
NaN
중간 값으로 이어질 것입니다 만?