2016-08-04 4 views
-1

이 프로그램을 실행할 때 float가 정확한 값을 인쇄하지 않는 이유를 알 수 없습니다.float가 올바르게 작동하지 않습니다.

#include <iostream> 
using namespace std; 

int main(){ 

int a, b; 
float x; 

cout << "Input the value for a: "; 
cin >> a; 
cout << "Input the value for b: "; 
cin >> b; 

x = - b/a; 

printf("The value of x is: %.2f",x); 
//cout << "The value of x is: " << x; 

}

나는이에 대한 입력이 그 결과 B 10 0.20, 을해야 할 때 적어도 프로그램이 0.00 만

답변

3

당신은 귀하의 피연산자를 캐스팅 할 필요가 보여주고 싶어 수레. 자세한 내용은 여기를

ex: x = (float)a/(float)b 

봐 : 당신은 내가 생각 기대하고 모든 출력의

Dividing two integers to produce a float result

+0

'\\'는 몫을 제공하지 않습니다. 그래서 결과는 여전히 5 – jonju

+0

이 될 것입니다. 필자의 피연산자가 정수인 경우 1.5와 같은 부동 소수점 응답을 얻을 수 없습니까? – Marr

0

첫 번째는 잘못된 것입니다.

-5.00 -10/2 = -5이어야합니다. %.2f =>-5.00

으로 가정합니다. 당신이 %.2f로 인쇄되어 있기 때문에 a = 10 b =이 있다면, 당신의 코드

`x= - 2/10` 

에 따라 이는 시스템이 제공 0.00을 제공

x = 0. Notice the `\`. 

를 제공해야합니다.

의심의 여지가 있기를 바랍니다.

+0

예 그게 결과지만, 내가보고 싶은 것은 0.20과 같은 excact 답변입니다. excact 값을 출력하려면 아무 것도 추가해야합니까? – Marr

+0

@ King Arthur 님의 답변은 부동으로 typecasting하여 얻을 수 있습니다. – jonju

관련 문제