2017-10-15 56 views
-1

我參加了一次編程測試,我的老師以3分而不是3.0分潛水,儘管看起來我得到了相同的答案。在整數之後是否添加一個.0對除法有影響?

volu = PI*(BASE*BASE)*(HEIGHT/3); 

.0是否在C++程序中有問題,如果是的話,爲什麼? 謝謝!

編輯:我用PI和BASE

+0

'HEIGHT'是什麼類型? – nwp

+1

[C++運算符中的隱式類型轉換規則]的可能重複(https://stackoverflow.com/questions/5563000/implicit-type-conversion-rules-in-c-operators) –

+0

所有是雙打 – burrowfestor

回答

2

雙打

如果HEIGHT是不可分割的類型,那麼它會一直(對於它的價值,我覺得你有它是相當謹慎的方式。) 絕對必要你寫的是3.0而不是3。 (3.0是文字double類型的,參見3其爲int。)

否則分割會發生在整數算術,導致結果熄滅。

個人而言,我會刪除所有多餘的括號,寫它作爲

PI * BASE * BASE * HEIGHT/3; 
0

是,兩個整數將利用歐氏師被分割。添加.0會將其更改爲正常分割,因爲您不再分割兩個整數,而是一個整數和一個雙精度。

相關問題