我还是C ++的初学者,所以我在基础知识上寻求帮助。 在下面的代码中,我使用类型转换来查找122/65的值,但即使是双数据类型,我也只得到整数部分。
#include <iostream>
using namespace std;
int main()
{
double a=(double)('z'/'A');
cout<<a;
return 0;
}
有人能为我提供一个很好的理由吗?
谢谢。
答案 0 :(得分:5)
进行整数除法,然后将结果类型化为double。基本上你有:
(double) (122/65) = (double) (1) = 1.0
^ truncated -> integer division
如果你想要一个浮点除法,你可以这样做:
double a = (double)'z' / (double)'A';
// a = 122.0 / 65.0