2017-07-13 56 views
1

我一直試圖通過將變量存儲到float和double來打印小數,但我沒有得到所需的輸出。我對這些數據類型有什麼不瞭解?打印十進制使用浮點數,雙C++

以下是我的代碼:

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

如果*計算*整數算術中的值,則將值存儲到float或double中將無濟於事。 – user2357112

回答

1

你在做整數運算。整數1除以整數四舍入爲零。

您需要告訴編譯器您的數字文字是浮點值。

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非常歡迎。很高興我能幫上忙。 –