2016-07-24 17 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」。 1つの除算の少なくとも1つのオペランドは浮動小数点型でなければなりません。そうでなければ整数除算で0に切り捨てます。例えば。 '2.0/5'、または' 2/5.0' –

答えて

2

整数演算を実行しています。すべてのオペランドは整数であり、すべての演算は整数演算を使用して行われます。そして、整数除算2/5はゼロに等しい。

代わりに、すべての上

使用浮動小数点値:

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

ですが、私はfloat変数を宣言しています。答えは11.4です。これはfloat変数です。 –

+1

@rashedazadはい、それは問題ではありません。値「2」は整数であり、「5」である。 2つの整数を除算すると、別の整数になり、整数には小数点以下の桁がありません。整数リテラルの代わりに浮動小数点リテラルを使用する必要があります。 –

+0

説明をありがとうございました。 –