2016-08-04 11 views
-1

このプログラムを実行すると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; 

}

私は入力2と結果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のようなfloat型の答えは得られませんか? – Marr

0

をすべての出力の最初に、あなたは私が間違っていると思う期待しています。

-5.00 -10/2 = -5である必要があります。 %.2f =>-5.00

とします。あなたは%.2fでそれを印刷しているのでa = 10とb = 2なら、あなたのコード

`x= - 2/10` 

あたり、これは、システムが与える0.00を与える

x = 0. Notice the `\`. 

を与える必要があります。

これがあなたの疑いを明確にすることを願っています。

+0

はいthatsの結果ですが、私が見たいのは、0.20のようなexcactの答えです。私はexcact値を出力するために追加する必要がありますか? – Marr

+0

@King Arthurさんの答えは浮動小数点型でキャストすることができます – jonju

関連する問題