부동 소수점 비교는 언제 허용됩니까?
프로그래밍에서 부동 소수점 숫자를 등호 연산자(= =)와 비교하는 것은 일반적으로 표현의 본질적인 부정확성으로 인해 권장되지 않습니다. 그러나 이러한 비교가 신뢰할 수 있는 것으로 간주될 수 있는 제한된 시나리오가 있습니다.
정수값의 정확한 표현
부동 소수점 산술에 널리 채택된 표준인 IEEE 754는 특정 범위 내의 정수에 대한 부동 소수점 표현은 정확합니다. 따라서 0을 포함한 정수는 항등 연산자를 사용하여 비교할 수 있습니다.
예:
float a = 1.0; float b = 1.0; a == b; // True
정수 상수
예제 코드의 BAR 상수와 같이 static const double로 정의된 상수를 사용하면 값이 표시됩니다. 정확한 부동 소수점 숫자로. 따라서 항등 연산자를 사용하여 변수를 이러한 상수와 비교하면 항상 올바른 결과가 생성됩니다.
예:
static const double BAR = 3.14; void foo(double d) { if (d == BAR) ... }
이 경우 foo(BAR )는 다른 계산이나 작업이 d를 수정하지 않는다는 가정 하에 항상 true로 평가됩니다. 변수입니다.
주의 사항
정수의 부동 소수점 비교는 일반적으로 신뢰할 수 있지만 여전히 주의가 필요합니다.
위 내용은 부동 소수점 비교를 위해 항등 연산자를 사용하는 것이 안전한 경우는 언제입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!