>  기사  >  백엔드 개발  >  C의 정수 나누기에서 부동 소수점 결과를 얻는 방법은 무엇입니까?

C의 정수 나누기에서 부동 소수점 결과를 얻는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-25 17:37:14480검색

How to Get a Float Result from Integer Division in C  ?

정확한 나눗셈을 위해 정수를 부동 소수점으로 변환

C에서 a/b와 같이 두 정수를 나누면 정수 몫이 생성됩니다. . 부동 소수점 결과를 얻으려면 피연산자를 부동 소수점으로 구체적으로 캐스팅해야 합니다.

문제 설명:

나누기 연산에서 정수 피연산자를 사용하면 결과가 다음으로 잘립니다. 정수. 이를 방지하고 숫자의 무결성을 어떻게 유지할 수 있습니까?

해결책:

이 문제를 해결하고 부동 소수점 결과를 보장하려면 피연산자를 부동 소수점으로 캐스팅하세요.

float ans = (float)a / (float)b;

피연산자를 부동 소수점으로 명시적으로 변환하면 나누기 연산에서 소수점을 보존하는 부동 소수점 결과가 생성됩니다. 정밀도.

예:

다음 코드를 고려하세요.

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
  int a = 10, b = 3;
  float ans = (float)a / (float)b;
  cout << fixed << setprecision(3);
  cout << (a/b) << endl;
  cout << ans << endl;
  return 0;
}

출력:

3
3.333

위에서 볼 수 있듯이 , 캐스팅은 올바른 소수점 정밀도를 유지하면서 부동 소수점 결과를 보장합니다.

위 내용은 C의 정수 나누기에서 부동 소수점 결과를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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