0

내 콘솔 앱은 이렇게 보입니다.% 대 모듈러스 계산을위한 FMOD

#include "stdafx.h" 
#include <iostream> 
#include <cmath> 
using namespace std; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    int a, b; 
    cin>>a>>b; 
    cout<<"% "<<a%b<<endl<<"fmod "<<fmod(a,b)<<endl; 
    system("pause"); 
    return 0; 
} 

나 C++로 초보자 그리고 난이 개 질문을 가지고 : VS.에이 응용 프로그램을 작성

  1. 을 왜 "stdafx.h"를 포함시켜야합니까? 어떤 요구 사항이 있습니까? 이게 뭐야?
  2. fmod% 사이에 어떤 차이가 있습니까? 그들을 위해 정확히 동일한 결과를 얻기 : VS.에이 응용 프로그램을 작성 사전에

enter image description here

들으 ..

+0

첫 번째 질문에 대한 답변 : http://stackoverflow.com/questions/2976035/purpose-of-stdafx-h – interjay

답변

4

왜 "stdafx.h"를 포함시켜야합니까? 어떤 요구 사항이 있습니까? 이게 뭐야?

기본 프로젝트 설정에 미리 컴파일 된 헤더가 필요하기 때문에 (this 참조).

이 기능을 수동으로 해제 할 수 있습니다.

enter image description here


FMOD와 % 사이에 어떤 차이가 있습니까 : 아래 그림과 같이 미리 컴파일 된 헤더를 사용하지 를 선택? 동일한 결과를 얻으려면

예. 예. %은 부동 포인터 번호에서 작동 할 수 없으며 fmod 수 있습니다. f에서 fmod은 부동 소수점을 나타냅니다.

이 시도 :

float a, b; 
std::cin>>a>>b; 
std::cout << (a%b) << std::endl; //it will give compilation error. 
0

FMOD를 (a, b) 파라미터가 전달 될 때 부유하는 INT 변수 a 및 b를 전송할 것이다. a 및 b의 유형 (예 : std :: uint64_t를 사용하는 경우)에 따라 형 변환 중에 정밀도가 떨어지고 잘못된 결과가 반환 될 수 있습니다. 반환 유형도 부동이며 int 유형의 함수를 사용하는 경우 다시 캐스팅해야합니다. int 타입의 경우 %를 사용해야합니다. fmod 사용은 덜 효율적입니다.