2011-12-12 60 views
1

我的C++程序在使用命名空間和東西之後有一個除法操作。如何顯示C++中長度超過1個小數點的答案

cout<<"Please type the data"; 

cin>> a; 

z = a/4; 

cout<<"The answer is"<< z; 

的程序給出準確的數字,如果我鍵入數字是整除像

前。一個= 8,Z = 4

但是,當涉及到不屬於被4整除的直接數字它示出了如所示的結果

一個= 54

B = 13 //真正的答案是13.5

它忽略小數點前的數字。 如何在結果中的小數點之前包含所有數字(或至少保留至小數點後4位)?

請幫忙。

+3

變量'了'和'z'在你的榜樣,什麼類型的是什麼人?如果他們是'浮動'它應該自動工作。 –

回答

4

你的問題是你正在定義一個類型爲int的z和z。相反,將它們定義爲雙重,您的問題將得到解決。

double a, z; 

cout<<"Please type the data"; 

cin>> a; 

z = a/4; 

cout<<"The answer is"<< z; 
+0

非常感謝,它確實解決了我的問題。 –

0
cout<<"The answer is"<< setprecision(2) << z; 
2

使用適當類型:

double z = 0.; 

z = 54/4.; 

std::cout << z << std::endl; 

注:4.而非4,否則上述分割將簡單地是一個整數除法,而不是一個浮點除法。

您還可以通過接受來自用戶的double/float來確保發生浮點除法。

+0

非常感謝,它確實解決了我的問題。 –