(int)myDouble
是否與(int)Math.Truncate(myDouble)
有任何不同?不(INT)myDouble曾經從(INT)Math.Truncate(myDouble)有什麼區別?
有什麼理由我應該比另一個更喜歡一個嗎?
(int)myDouble
是否與(int)Math.Truncate(myDouble)
有任何不同?不(INT)myDouble曾經從(INT)Math.Truncate(myDouble)有什麼區別?
有什麼理由我應該比另一個更喜歡一個嗎?
Math.Truncate
適用於當您需要將結果保留爲不帶小數部分的雙倍值時。如果你想將它修改爲int,就直接使用cast。
編輯:作爲參考,在這裏是從「Explicit Numeric Conversions Table」的相關文件:
當您從一個雙重或浮點值轉換爲整數類型,值被截斷。
我的天真猜測是後者是CLR API的一個明確定義的方面,而前者依賴於語言規範,即使它隱含地相同。 –
我認爲使用'Math.Truncate'是不必要的一步。 – Oded
'Math.Truncate'適用於當你需要保持你的結果作爲'double'沒有小數部分。如果你想將它修改爲一個'int',請使用該轉換。 – Douglas