>백엔드 개발 >C++ >C 정수 나누기가 0이 되는 이유는 무엇이며 부동 소수점 나누기를 어떻게 달성할 수 있습니까?

C 정수 나누기가 0이 되는 이유는 무엇이며 부동 소수점 나누기를 어떻게 달성할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-16 17:31:10455검색

Why Does C   Integer Division Result in Zero, and How Can Floating-Point Division Be Achieved?

C의 부동 소수점 나누기 이해

이중 변수에 할당되었음에도 불구하고 나누기(3/5)는 제공된 값에서 0이 됩니다. 정수 나누기로 인한 코드. C에서는 기본적으로 나누기 표현식의 피연산자를 정수로 평가합니다. 3과 5는 모두 정수이므로 나누면 0인 정수 결과가 생성됩니다.

결과가 분수 정밀도를 유지하는 부동 소수점 나누기를 수행하려면 하나 이상의 피연산자가 부동 소수점 리터럴이어야 합니다. . 이로 인해 컴파일러는 나누기를 부동 소수점 연산으로 처리하고 부동 소수점 결과를 반환하게 됩니다.

원본 코드에서 의도한 부동 소수점 나누기를 달성하려면 다음과 같이 수정할 수 있습니다.

#include <iostream>

int main(int argc, char** argv)
{
  double f = 3.0 / 5;  // Change both operands to floating-point literals
  std::cout << f;
  return 0;
}

하나의 피연산자(이 경우 3.0)를 부동 소수점 리터럴로 만들어 컴파일러는 부동 소수점 나누기를 수행하고 결과는 분수를 올바르게 반영합니다. 값입니다.

위 내용은 C 정수 나누기가 0이 되는 이유는 무엇이며 부동 소수점 나누기를 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.