2014-12-03 37 views
-7

这里是我的代码:我如何用C++小数,如果我使用整数变量

class Division{ 
public: 
    void div(){ 
    //This is what to use inside the main 
    //Division Divide; 
    //Divide.div(); 
    int x; 
    int y; 
    int div; 
    cout << "Still in Alpha So it only rounds the Number\n"; 
    cout << "Enter Your Number\n"; 
    cin >> x; 
    cout << "Divided by\n"; 
    cin >> y; 
    cout << "="; 
    div = x/y; 
    cout << div; 

回答

2

你不能,如果你将它们定义为int。改为使用doublefloat

double x; 
double y; 
double div; 

更改定义可解决问题。

+0

为什么downvote? – 2014-12-03 13:55:49

+0

我也在想他 – 2014-12-03 13:58:04

2

您将2 int的,所以你会调用整数除法,这截断所有小数。您可以将您的int更改为double,您将保留小数。

例如

1/2  // results in 0 

1.0/2.0 // results in 0.5 
0

Cyber's答案是正确的,你在做整数除法。如果你想要x和y是整数(保持输入理智),只有div有双待:

double div; 
div = static_cast<double>(x)/y; 

输出:1.67

的的static_cast 确保浮动师,但你保持x和y的好处。

但是在输出时,您仍然不会在默认情况下看到两个小数位。使用std :: fixed和std :: setprecision(2)来限制输出。

+0

他没有要求2位小数。 – 2014-12-03 13:56:34

+0

@Eduardo我的回答仍然正确,我只是在提出建议。 – user4320030 2014-12-03 14:00:37

+0

我只是指出。你的建议是可以接受的。 – 2014-12-03 14:01:16

-1

double更换int定义:

double x; double y; double div;

相关问题