2017-04-14 32 views
-7

在語句中分配給num的值是多少:double num = 5/2;?在語句中分配給num的值是多少

有些網站說2有人說2.5。請幫助。

+1

你嘗試過'double num = 5/2;'然後'cout << num'嗎? – Rafalon

+4

你可以發佈網站的網址是2.5嗎? –

+0

當你嘗試它時,它的價值是多少?你應該意識到,只需要將代碼輸入到編輯器中並花費更少的時間和精力就可以完成它,而不是將其輸入到瀏覽器中,然後從中創建一個問題......更不用說你必須等待的時間了一個答案。 –

回答

1

double num = 5/2;給出2作爲結果。

double num = 5/2.0;double num = 5.0/2.0;double num = 5.0/2;給出2.5作爲結果。

你最好自己嘗試一下這些代碼。當你獨自思考/工作不夠時提出問題。這樣你可以學到更多。

0

num是數據類型double。因此,它會保存一個浮點值。
但是,它也取決於您分配給它的內容。
您目前正在爲它分配一個整數值。 5/2 = 2
因此,num將被分配2並且在內部它將被保存爲2.0

如果您希望num爲2.5,那麼在將其轉換爲浮點值之前進行分配。
num = 5.0/2 | num = 5.0/2.0 | num = 5/2.0西港島線導致num = 2.5

1
double num = 5/2; 

在大多數情況下,每一個表情,即使它是一個更大的表達式的子表達式,對自己的評價。結果的類型和值由(子)表達式本身決定,而不是它出現的上下文。

在表達式5/2中,除法運算符有兩個操作數,兩個都是int類型,所以它得出的結果爲int。 (有整數除法產生非整數結果的語言,C++不是這些語言之一,也不是C)

5/2的結果是2(因爲整數除法截斷)。該值被轉換爲num的類型並用於初始化它,因此num的初始值爲2.0。 (22.0是不同的,它們具有相同的數學值,但不同類型,即intdouble這就是爲什麼隱式轉換是必要的。)

如果你想num有值2.5,有幾種方法你可以這樣做:

double num = (double)5/(double)2; 
double num = (double)5/2; 
double num = 5.0/2.0; 
double num = 2.5; 

在第二個例子中,左側和右側的操作數是不同類型的,所以他們通過一些適度複雜的規則轉換爲通用類型。在這種情況下,int操作數轉換爲double

我通常更喜歡在浮點表達式中使用浮點常量而不是整數常量(5.0而不是5)。在一些情況下,整數常量將根據需要轉換爲浮點數,但正如我們在這裏看到的,這適用於單個文本而不是常量表達式。

+0

哇。很好解釋。 –