[英]C++ casting int to double
我不是C ++开发人员,但是今天我找到了C ++代码并尝试理解它。 因此,我堆叠了这段代码:
int m = 2, n = 3, i = 1;
double mid = (double)m / n * i;
int d = (int)mid + 1;
printf("%d %d\n", mid, d);
要打印到控制台的结果是:14316557651071994197。这似乎与将变量m强制转换为double有关,但我不知道它是如何发生的。 我需要有人帮助我理解它。 提前致谢!
您应该在printf
使用%lf
格式说明符打印double( mid
)。
将printf更改为
printf("%f %i\n", mid, d);
会实际打印您期望的结果,即0.666667 1
一种更简单的解决方法是
double m_Doubled;
m_Doubled = static_cast(m);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.