모두 파스칼을 잊었습니까?
1/6수율 0.1666666...(지원되는 모든 정밀도).
1 div 6 수확량 0
C 규칙이 실수인지 여부는 논쟁의 여지가 있습니다. 피연산자가 동일한 유형 인 거의 모든 C의 산술 연산자는 동일한 유형의 결과를 생성합니다. 일관성에 대해 말해야 할 것이 있습니다.
또한 C는 주로 시스템 수준 코드를 대상으로하기 때문에 대부분의 C 프로그램은 부동 소수점을 전혀 사용하지 않습니다. 한 번에 실수로 부동 소수점 코드를 필요하지 않은 프로그램에 부동 소수점 코드를 추가하면 심각한 문제가 될 수 있습니다. 작은 임베디드 시스템의 경우에도 여전히 그렇습니다.이 역시 C의 주요 목표입니다.
대부분의 C 프로그램에서 정수 나누기를 자르는 것은 아마도 어쨌든 원하는 것입니다.
1 / 6C에서 부동 소수점 결과가 나오면 다음을 수행하십시오.
- 언어가 일치하지 않을 것입니다.
- 이 표준은 임의의 선택이 될해야 하는 결과에 사용할 부동 소수점 유형 (
double자연 선택처럼 보일 수 있지만, 당신은의 여분의 정밀도를 선호 할 수도 있습니다 long double)
- 언어는 여전히 정수 나누기 연산이 있어야합니다. 부동 소수점 덧셈을 수행 한 다음 절단하는 것만으로는 충분하지 않을 수 있습니다.
C 는 두 종류의 나누기에 별도의 연산자를 제공 할 수 있지만 위의 두 번째 점은 여전히 적용됩니다. 세 가지 부동 소수점 형식 중 어느 것이 결과에 사용됩니까? 그리고 필요한 경우 부동 소수점 나누기를 쉽게 얻을 수 있기 때문에 (한 피연산자 중 하나 또는 둘 모두에 대해 부동 소수점 상수를 사용하거나 피연산자 중 하나 또는 둘 모두를 부동 소수점 유형으로 캐스팅), 분명히 그렇지 않았습니다. ' 그 점을 중요하게 생각했습니다.
C 매뉴얼의 1974 버전 (K & R의 첫 번째 판이 출판되기 4 년 전)에서 Ritchie는 혼란을 언급하지도 않았습니다.
이진 / 연산자는 나눗셈을 나타냅니다. 곱셈과 동일한 유형 고려 사항이 적용됩니다.
두 피연산자가 모두 유형 int이거나 char이면 결과는 유형 int입니다.
예, 일부 C 프로그래머, 특히 초보자에게는 혼란의 원인이지만 C는 초보자에게 친숙하지 않습니다.