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