2017-09-15 62 views
-1

我一直在看互聯網上的YouTube和不同的指南,並認爲這將是一個有趣的計算器,因爲我看過很多人這樣做,這是我開始。它工作正常,但我希望它也能夠顯示小數。所有的答案表示讚賞。 (我有一大堆的#include,但忽略這些)我如何讓它顯示小數

#include <iostream> 
#include <limits> 
#include <cstdio> 
#include <tchar.h> 
#include <conio.h> 

using namespace std; 

int main() 

{ 

    std::cout << "My first caclulator\nPlease enter your first number: "; 
    int x, y; 
    std::cin >> x; 
    std::cout << "Please enter the other number: "; 
    std::cin >> y; 
    int w = x*y; 
    int c = x + y; 
    int v = x - y; 
    int q = x/y; 
    std::cout << "\nNumbers multiplied: " << w << endl; 
    std::cout << "\nNumbers added together: " << c << endl; 
    std::cout << "\nNumbers subtracted: " << v << endl; 
    std::cout << "\nNumbers divided: " << q << endl; 
    _tprintf(_T("Press any key to exit ")); 
    while (_kbhit()) _gettch(); 

    _gettch(); 

    return 0; 
} 
+5

閱讀「int」和「float」或「double」類型之間的區別。 – DevilaN

+0

你的代碼並不[標準C++中的](http://coliru.stacked-crooked.com/a/4ad8de13d5963f13)。 – user0042

回答

0

您所有的計算都是整數數學完成的,因此不存在涉及小數(所有值將被截斷)。你可以改變使用double代碼,但這時你會最終有一個大的小數位數,所以最好使用setprecision圓,例如:

double w = x*y; 
double c = x + y; 
double v = x - y; 
double q = x/y; 
std::cout << "\nNumbers multiplied: " << setprecision(2) << w << endl; 
std::cout << "\nNumbers divided: " << setprecision(2) << q << endl; 
+0

'setprecision'需要'std ::'前綴(或''using'語句)和一個額外的'#include'。 http://en.cppreference.com/w/cpp/io/manip/setprecision – Melebius

0

如果你想顯示的小數,你必須使用另一種數據類型。
嘗試類似doublefloat

例子:

double w = x*y; 
double c = x + y; 
double v = x - y; 
double q = x/y; 

這應該很好地工作。
如果您需要更多關於其他數據類型的信息,請查看:link