为什么加倍a =(double)(' z' /' A')只给出C ++中的整数部分?

时间:2017-08-30 07:26:02

标签: c++

我还是C ++的初学者,所以我在基础知识上寻求帮助。 在下面的代码中,我使用类型转换来查找122/65的值,但即使是双数据类型,我也只得到整数部分。

#include <iostream>

using namespace std;

int main()

{

    double a=(double)('z'/'A');

    cout<<a;

    return 0;

}

有人能为我提供一个很好的理由吗?

谢谢。

1 个答案:

答案 0 :(得分:5)

进行整数除法,然后将结果类型化为double。基本上你有:

(double) (122/65) = (double) (1) = 1.0
                              ^ truncated -> integer division

如果你想要一个浮点除法,你可以这样做:

double a = (double)'z' / (double)'A';
//     a = 122.0       / 65.0