2017-07-13 28 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非常欢迎。很高兴我能帮上忙。 –