2017-07-13 5 views
1

変数をfloatとdoubleに格納して小数点以下を印刷しようとしましたが、目的の出力が得られません。これらのデータ型について私は何を理解していませんか?続きfloatを使用した小数点の印刷、C++のdouble

は私のコードです:

int main(){ 
    double s = 0; 
    float r = 1/4; 
    cout << r << endl; 
    cout << pow((1 - s), 2) << endl; 
    cout << (2 + s) << endl; 
    cout << (1/4) * (pow((1 - s), 2)) * (2 + s) << endl; 
    return 0; 
} 

出力:

0 
1 
2 
0 

最初の行が0.25であるべきで、最後は0.5でなければなりません。

+1

浮動小数点数型または倍精度浮動小数点数型に値を格納することは、整数演算の*値を計算する場合に役立ちません。 – user2357112

答えて

1

あなたは整数の計算をしています。整数1を整数4で割ったものは、ゼロに切り捨てられます。

数値リテラルが浮動小数点値であることをコンパイラに伝える必要があります。

float r = 1.0/4.0; 
cout << r << endl; 
cout << pow((1.0 - s), 2) << endl; 
cout << (2.0 + s) << endl; 
cout << (1.0/4.0) * (pow((1.0 - s), 2)) * (2.0 + s) << endl; 
+1

ダムはそれを知らなかった。ありがとう! – user6771484

+0

@ user6771484あなたは大歓迎です。お役に立てて嬉しいです。 –

関連する問題