2016-07-24 5 views
-1
#include"iostream" 
using namespace std; 

int main(){ 

    float arithmetic_operation = (4+5)+9*2-4+2/5+1-13; 
    cout<< arithmetic_operation << " <--The Result." << endl; 

    return 0; 
} 

결과가 11 <입니다. 결과가 나타납니다. 하지만 실제로 결과는 11.4입니다. 누군가 제발 나를 이해시켜 주길 바랍니다.C++의 산술 연산

+0

당신은 너무 많이 너무 일찍 멀리하고 있어요. 훨씬 간단한 프로그램으로 시작하여 실제로하는 일의 모든 부분이 실제로 예상대로 작동하는지 확인하십시오. 당신을 실행하기 위해서는 먼저 걷는 법을 배워야합니다! –

+1

'2/5 == 0'. 나눗셈의 적어도 하나의 피연산자는 부동 소수점 형이어야하며, 그렇지 않으면 정수로 나눠서 0으로 자릅니다. 예 : '2.0/5' 또는'2/5.0' –

답변

2

정수 계산입니다. 모든 피연산자는 정수이며 모든 연산은 정수 연산을 사용하여 수행됩니다. 그리고 정수 나누기 2/5은 0과 같습니다. 모든 것을 대신

를 사용하여 부동 소수점 값 :

double arithmetic_operation = (4.+5.)+9.*2.-4.+2./5.+1.-13.; 
+0

하지만 float 변수를 선언했습니다 .. 그리고 대답은 float 변수 인 11.4입니다. –

+1

@rashedazad 네,하지만 그건 중요하지 않습니다. '2'값은 '5'와 같이 정수입니다. 두 개의 정수를 나누면 다른 정수가되고 정수는 소수가 될 수 없습니다. 정수 리터럴 대신 부동 소수점 리터럴을 사용해야합니다. –

+0

설명해 주셔서 대단히 감사합니다. –