C ++将int转换为double

时间:2013-11-14 12:24:20

标签: c++ casting

我不是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);

将要打印到控制台的结果是:1431655765 1071994197.这似乎与将变量m转换为double有关,但我不知道它是如何发生的。我需要有人来帮助我理解它。提前谢谢!

3 个答案:

答案 0 :(得分:4)

您应该在mid中使用%lf格式说明符打印双精度(printf)。

答案 1 :(得分:1)

将printf更改为

printf("%f %i\n", mid, d);

实际上会打印您所期望的内容,即0.666667 1

答案 2 :(得分:0)

一种更简单的解决方法是

double m_Doubled;
m_Doubled = static_cast(m);