2017-09-09 183 views
-1

我試圖使用double獲得我的weight_Fee的輸出,而且我似乎無法獲得正確的值。我試過使用float,但是我還沒有能夠讓它工作。如何輸出一個double值,它是C++中乘以另一個變量的值的值?

我的目標是獲得包含兩位小數的輸出值,就好像我要計算成本一樣,但每次都得到0.00。

我是C++新手,所以如果任何人都可以告訴我我做錯了什麼,這將是一個很大的幫助。謝謝。

#include <iostream> 
#include <iomanip> 
#include <cstdlib> 
#include <ctime> 
using namespace std; 

int main() { 

double animal_Weight; 
double weight_Fee = .5 * animal_Weight; 

cout << "In rounded poundage, how much does your animal weigh? "; 
cin >> animal_Weight; 

cout << setprecision (2) << fixed << weight_Fee; 

return 0; 
} 
+0

變量'animal_Weight'是未定義的,可以通過編譯器或操作系統初始化爲任何值,或者是內存中最後一個值。 –

+0

另外,輸入數據後,不再計算'weight_Fee'。我建議在輸入'animal_Weight'之後移動'weight_Fee'的定義。 –

+2

按順序執行語句。在你要求輸入之前,你如何期待乘法運算*? – Barmar

回答

1
double weight_Fee = 0.5 * animal_Weight; 

當初始化weight_Fee像你設置它等於0.5 * animal_Weight的當前值。由於目前未定義weight_Fee會有一些垃圾值。

當您將animal_Weight設置爲稍後基於用戶輸入的內容時,不會更改以前變量的值。你必須再次使用該語句設置weight_Fee = 0.5 *的animal_Weight

做的最好的事情了當前值可能在頂部只是聲明weight_Fee,並沒有定義它,直到你已經設置animal_Weight到你想要的東西。

事情是這樣的:

#include <iostream> 
#include <iomanip> 
#include <cstdlib> 
#include <ctime> 
using namespace std; 

int main() { 

    double animal_Weight; 
    double weight_Fee; 

    cout << "In rounded poundage, how much does your animal weigh? "; 
    cin >> animal_Weight; 

    weight_Fee = .5 * animal_Weight 

    cout << setprecision (2) << fixed << weight_Fee; 

    return 0; 
} 
0

變量animal_Weight是不確定的,並且可以通過編譯器或操作系統或任何價值恰好是最後的記憶被初始化爲任何事情。

你需要你輸入後計算weight_Fee一個值animal_Weight

double animal_Weight = -1.0; 

cout << "In rounded poundage, how much does your animal weigh? "; 
cin >> animal_Weight; 
double weight_Fee = .5 * animal_Weight; 

cout << setprecision (2) << fixed << weight_Fee; 
0

無論是有人忘了提及你,你的電腦確實只有1個指令在同一時間(和C++編譯器生成的指令序列對應於你的代碼);或者你可能從來沒有對這個陳述感興趣。

1) double animal_Weight; 
2) double weight_Fee = .5 * animal_Weight; 

3) cout << "In rounded poundage, how much does your animal weigh? "; 
4) cin >> animal_Weight; 

5) cout << setprecision (2) << fixed << weight_Fee; 

您的代碼提示(3)和cin的(4)動物體重。好。

但是在知道animal_Weight(4)之前計算weight_Fee(2)。這是一個邏輯錯誤。因此,如果(2)處的計算不知道animal_Weight,則不能確定正確的值。

此外,animal_Weight(1)未初始化,從而導致未定義的行爲。


請注意,您CAN讓編譯器抱怨(生成警告)嘗試使用未初始化變量(在第2行),但你必須命令編譯器這樣做(通過使用一個選項)。

相關問題