음의 부동소수점 0은 C에서 false로 평가되는 것이 보증됩니까?
나는 그것을 알고 있습니다.0.0 == -0.0
C기준에 따르면if(a)
와 동등하다if(a!=0)
, 그러나:
이if(-0.0)
로서 평가될 것이 확실하다false
기준으로는요?구현에 문제가 있습니까?if(-0.0)
사실로 평가되나?
여기서 중요한 건 이 모든 게if(a!=0)
의 의미if(-0.0)
정확히 같은 것으로 이해되어야 한다!=
부동소수점에서의 연산자(false)여야 한다는 보장이 있습니다.
C 2018 6.8.4.1은 다음 명령어의 동작을 지정합니다.if
스테이트먼트, 그 스테이트먼트if … else
제2단락에는 다음과 같이 기재되어 있다.
두 형식 모두 표현식이 0과 동일하지 않은 경우 첫 번째 서명이 실행됩니다.
C 2018 5.2.4.2.2항 2 및 3항의 부동소수점 모델(여기서는 수학적 타이포그래피를 포함하지 않지만 부동소수점 수치에 +1 또는 -1을 부동소수점 베이스의 스케일링된 제곱과 각각 해당 위치에 맞게 스케일링된 자릿수의 합을 곱하여 정의한다)에 따르면 수학적 값은 -0이다.는 0으로 +0과 같기 때문에 0과 비교됩니다.그러므로if (-0.)
는 첫 번째 서브스테이트먼트를 실행하지 않습니다.
언급URL : https://stackoverflow.com/questions/73598674/is-negative-floating-point-zero-guaranteed-to-evaluate-to-false-in-c
'source' 카테고리의 다른 글
옵션 루프에서 선택한 개체 가져오기 (0) | 2022.11.03 |
---|---|
php를 사용하여 json 게시물 보내기 (0) | 2022.11.03 |
java.util 간의 간단한 변환.날짜 및 XMLGregorian 캘린더 (0) | 2022.11.03 |
double in printf의 올바른 형식 지정자 (0) | 2022.11.03 |
IntelliJ 클래스 경로에 속성 파일 추가 (0) | 2022.11.03 |