我正在做其他事情,但所有结果都是零,所以我做了这个简约的例子,输出仍然是 0。
#include <iostream>
int main(int argc, char** argv)
{
double f=3/5;
std::cout << f;
return 0;
}
我错过了什么?
您忽略了 3 和 5 是整数这一事实,因此您得到的是整数除法。要使编译器执行浮点除法,请将其中之一设为实数:
double f = 3.0 / 5;
它不需要是.0
,你也可以做
3./5
或
3/5.
或
3e+0 / 5
或
3 / 5e-0
或
0xCp-2 / 5
或...只需要涉及一个指标,所以编译器知道它应该以浮点形式执行除法。另一种可能性:
double f=double(3)/5
。打字量要大得多,但毫无疑问你在做什么。或者简单地使用
double f=.6
,这也能达到目的...
double f = 3.0/5.0;
这应该可以解决你的问题
.0
。这会将它们转换为浮点文字。
int
保存通用变量,并希望获得如下比率
double
:
using namespace std;
int main()
{
int x = 7;
int y = 4;
double ratio;
ratio = static_cast<double>(x)/static_cast<double>(y);
cout << "ratio =\t"<<ratio<< endl;
}