C에서 모듈러스 나눗셈(%)이 정수로만 작동하는 이유
C에서 모듈러스 연산자(%)를 사용한 나눗셈은 정수로 제한됩니다. 정수 나누기의 고유한 특성으로 인해 피연산자. 정수를 나누면 결과는 당연히 정수가 되고, 나머지(몫과 제수를 뺀 결과)도 정수가 됩니다.
그러나 실수를 다룰 때에는 " 나머지'는 더욱 복잡해집니다. 다음 예를 고려하십시오.
double x = 3.1; int y = 2; double remainder = x % y;
이 경우 원하는 결과는 1.1입니다. 3.1을 2로 나누면 몫은 1이고 나머지는 1.1이 되기 때문입니다. 안타깝게도 C의 모듈러스 연산자는 x와 y를 모두 정수로 처리하므로 정수 나머지는 1.1이 아닌 1이 됩니다.
C에서 이 문제를 해결하려면 표준 라이브러리의 fmod 함수를 활용할 수 있습니다. 이 함수는 피연산자가 실수인 경우에도 하이브리드 나누기를 수행하고 소수 나머지를 반환합니다. 예를 들면 다음과 같습니다.
#include <math.h> double x = 3.1; int y = 2; double remainder = fmod(x, y);
이렇게 하면 1.1의 정확한 나머지가 생성되어 모듈러스 연산이 정수와 실수 피연산자 모두에 대해 일관되게 동작하도록 보장합니다.
위 내용은 C의 모듈러스 연산자(%)가 정수에만 작동하는 이유는 무엇이며, 분수 나머지를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!