我參加了一次編程測試,我的老師以3分而不是3.0分潛水,儘管看起來我得到了相同的答案。在整數之後是否添加一個.0對除法有影響?
volu = PI*(BASE*BASE)*(HEIGHT/3);
.0是否在C++程序中有問題,如果是的話,爲什麼? 謝謝!
編輯:我用PI和BASE
我參加了一次編程測試,我的老師以3分而不是3.0分潛水,儘管看起來我得到了相同的答案。在整數之後是否添加一個.0對除法有影響?
volu = PI*(BASE*BASE)*(HEIGHT/3);
.0是否在C++程序中有問題,如果是的話,爲什麼? 謝謝!
編輯:我用PI和BASE
雙打
如果HEIGHT
是不可分割的類型,那麼它會一直(對於它的價值,我覺得你有它是相當謹慎的方式。) 絕對必要你寫的是3.0
而不是3
。 (3.0
是文字double
類型的,參見3
其爲int
。)
否則分割會發生在整數算術,導致結果熄滅。
個人而言,我會刪除所有多餘的括號,寫它作爲
PI * BASE * BASE * HEIGHT/3;
是,兩個整數將利用歐氏師被分割。添加.0會將其更改爲正常分割,因爲您不再分割兩個整數,而是一個整數和一個雙精度。
'HEIGHT'是什麼類型? – nwp
[C++運算符中的隱式類型轉換規則]的可能重複(https://stackoverflow.com/questions/5563000/implicit-type-conversion-rules-in-c-operators) –
所有是雙打 – burrowfestor