繁体   English   中英

C ++将int转换为double

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM