我是新來的C + +,我不知道爲什麼這個代碼的輸出是8而不是8.25?爲什麼這個C++靜態演員代碼產生和int不是雙重
有人可以解釋爲什麼此代碼輸出一個int不是雙?
謝謝:)
#include "stdafx.h"
#include <iostream>
int main()
{
double x = 8.25;
int y;
y = x;
double z = static_cast<double>(y);
std::cout << z << std::endl;
return 0;
}
8是雙精度值的有效值。你四捨五入到了8.25,你期望的是什麼? – skypjack
當你做y = x時,你正在對int進行隱式轉換,所以y不會有小數。然後,當您將其重新投射回來時,您只需投回8. – Bozemoto
你們*會*意識到評論與答案之間的區別,對嗎? :-)對於我來說,這兩個看起來像*答案,不像這個(可疑的幽默)評論。 – paxdiablo