정수 나누기의 정밀도 손실: 부동 소수점 결과 얻기
정수가 나누어지고 부동 소수점 결과가 필요한 상황에서는 C 출력이 잘려서 데이터가 손실될 수 있습니다. 이 문제를 해결하려면 C의 정수 나누기 원리를 이해하고 부동 소수점 연산을 강제로 수행하는 방법을 구현하는 것이 중요합니다.
두 정수를 나눌 때 C는 정수 나누기를 수행합니다. 결과. 이 동작은 결과를 float 변수에 할당하는 경우에도 지속됩니다. 부동 소수점 결과를 얻으려면 나누기를 수행하기 전에 피연산자를 부동 소수점으로 캐스팅하는 것이 중요합니다.
해결 방법은 다음과 같이 코드를 수정하는 것입니다.
float ans = (float)a / (float)b;
두 피연산자를 캐스팅하여 부동 소수점 연산으로 나누기 연산이 수행되어 부동 결과가 나오도록 합니다. 그런 다음 계산된 답은 ans 변수에 저장됩니다.
수정된 코드 조각은 아래와 같습니다.
#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; // Integer division cout << ans << endl; // Float division return 0; }
이 수정을 통해 이제 ans를 사용할 때 출력에 float 결과가 올바르게 표시됩니다. .
프로그래머는 정수 나누기 동작을 이해하고 캐스팅 솔루션을 구현함으로써 이러한 상황에서 부동 소수점 결과를 효과적으로 달성하고 정확한 계산과 원하는 출력 값을 보장할 수 있습니다.
위 내용은 C에서 정수를 나눌 때 부동 소수점 결과를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!