簡體   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