C의 부동 소수점 비교 이해
C의 부동 소수점 값을 비교할 때 잠재적인 부정확성을 인식하는 것이 중요합니다. 제한된 정밀도. 제공된 코드 조각에서 부동소수점 a와 b를 각각 상수 0.7과 0.5로 비교할 때 예상치 못한 출력 "1 is right"가 관찰되었습니다.
예기치 않은 출력의 원인:
이 문제는 다음과 같은 이유로 발생합니다. 이유:
해결 방법:
예상 출력을 얻으려면 다음 중 하나를 수행하세요.
예상 출력이 있는 코드:
int main() { double a = 0.7; double b = 0.5; if (a < 0.7) { if (b < 0.5) printf("2 are right"); else printf("1 is right"); } else printf("0 are right"); }
이 수정된 코드에서 a와 b를 비교하면 각각의 double은 정확한 정밀도를 보장하므로 예상되는 결과는 "0이 맞습니다."입니다.
위 내용은 C에서 부동 소수점을 비교하면 때때로 예상치 못한 결과가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!