c++ - 为什么将两个 int 分配给 double 时不能产生正确的值?

标签 c++ variables double integer-division

为什么会出现在下面的片段中

int a = 7;
int b = 3;
double c = 0;
c = a / b;

c 最终的值为 2,而不是人们预期的 2.3333。如果 ab 是 double ,答案确实变成 2.333。但肯定是因为 c 已经是 double 了,所以它应该可以使用整数吗?

那么为什么 int/int=double 不起作用?

最佳答案

这是因为您正在使用 operator/ 的整数除法版本,它需要 2 个 int 并返回一个 int。为了使用返回 doubledouble 版本,必须将至少一个 int 显式转换为

c = a/(double)b;

关于c++ - 为什么将两个 int 分配给 double 时不能产生正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549586/

相关文章:

c# - 我怎样才能得到 double 的符号位?

c++ - 关于g++中包含目录顺序的问题

c++ - 如何为 extern "C"设置 C 版本?

c++ - 指针变量,var 和 &var 的区别

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

Javascript - 在函数中传递 THIS 不起作用

bash - 脚本,将所有 $input 保存到 1 个变量中

c# - 如何处理大多数小数不能用二进制准确表示的事实?

python - 编译 python 代码并将其链接到 C++ 程序?

swift - 如何获取 Double 小数点后的第一个数字?