为什么会出现在下面的片段中
int a = 7;
int b = 3;
double c = 0;
c = a / b;
c
最终的值为 2,而不是人们预期的 2.3333。如果 a
和 b
是 double ,答案确实变成 2.333。但肯定是因为 c
已经是 double 了,所以它应该可以使用整数吗?
那么为什么 int/int=double
不起作用?
最佳答案
这是因为您正在使用 operator/
的整数除法版本,它需要 2 个 int
并返回一个 int
。为了使用返回 double
的 double
版本,必须将至少一个 int
显式转换为 双
。
c = a/(double)b;
关于c++ - 为什么将两个 int 分配给 double 时不能产生正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549586/