C#中的除法運算符與VB.NET中的除法運算符
VB.NET中的除法運算符有兩個:/(浮點除法)、\(整數(shù)除法)
C#中的除法運算符只有一個:/(除法)
VB.NET中的除法運算符與C#中的除法運算符存在很大的差異,使用時注意區(qū)分。
關(guān)于VB.NET中的除法運算符的介紹(摘自MSDN):
/(浮點除法):將兩個數(shù)相除并返回以浮點數(shù)表示的結(jié)果。
所得結(jié)果的數(shù)據(jù)類型取決于操作數(shù)的類型。 下表顯示如何確定結(jié)果的數(shù)據(jù)類型。
操作數(shù)數(shù)據(jù)類型 |
結(jié)果數(shù)據(jù)類型 |
兩個表達式都是整數(shù)數(shù)據(jù)類型(SByte、Byte、Short、UShort、Integer、UInteger、Long、ULong) | Double |
一個表達式為 Single 數(shù)據(jù)類型,而另一個表達式不為 Double |
Single |
一個表達式為 Decimal 數(shù)據(jù)類型,而另一個表達式不為 Single 或 Double |
Decimal |
任一表達式為 Double 數(shù)據(jù)類型 | Double |
Boolean | SByte | Byte | Short | UShort | Integer | UInteger | Long | ULong | |
Boolean | Boolean | SByte | Short | Short | Integer | Integer | Long | Long | Long |
SByte | SByte | SByte | Short | Short | Integer | Integer | Long | Long | Long |
Byte | Short | Short | Byte | Short | UShort | Integer | UInteger | Long | ULong |
Short | Short | Short | Short | Short | Integer | Integer | Long | Long | Long |
UShort | Integer | Integer | UShort | Integer | UShort | Integer | UInteger | Long | ULong |
Integer | Integer | Integer | Integer | Integer | Integer | Integer | Long | Long | Long |
UInteger | Long | Long | UInteger | Long | UInteger | Long | UInteger | Long | ULong |
Long | Long | Long | Long | Long | Long | Long | Long | Long | Long |
ULong | Long | Long | ULong | Long | ULong | Long | ULong | Long | ULong |
如果 \ 運算符兩個操作數(shù)中的任何一個為 Decimal、Single 或 Double,則 Visual Basic 在運算前會嘗試將其轉(zhuǎn)換為 Long,并且運算的結(jié)果數(shù)據(jù)類型為 Long。如果 Option Strict 為 On,將產(chǎn)生編譯器錯誤。 如果 Option Strict 為 Off,若值超出 Long 數(shù)據(jù)類型 (Visual Basic) 的范圍,則可能會產(chǎn)生 OverflowException。 轉(zhuǎn)換為 Long 也服從“四舍六入五成雙”。如果除數(shù)或被除數(shù)計算結(jié)果等于 Nothing,則將其視為零。
關(guān)于C#中的除法運算符的介紹(摘自MSDN):
/(除法): 將兩個數(shù)相除并返回除數(shù)和被除數(shù)的數(shù)據(jù)類型中精度高的數(shù)據(jù)類型。
執(zhí)行除法前,編譯器會將除數(shù)和被除數(shù)的數(shù)據(jù)類型統(tǒng)一成兩者類型中精度高的數(shù)據(jù)類型。返回的運算結(jié)果的類型也是兩者類型中精度高的數(shù)據(jù)類型。例如:兩個整數(shù)相除的結(jié)果始終為一個整數(shù)。 一個整數(shù)和一個Double型相除,返回結(jié)果為Double型。但是需要注意一點,Double和Decimal不能直接進行算術(shù)運算,必須先顯式的將兩者類型進行統(tǒng)一,之后才能進行運算,Double和Decimal不能直接進行運算的原因是兩者之間不能進行隱式的類型轉(zhuǎn)換。
相關(guān)文章
時間戳與時間相互轉(zhuǎn)換(php .net精確到毫秒)
本文給大家分享的時間戳與時間相互轉(zhuǎn)換(php .net精確到毫秒) ,感興趣的朋友一起學習吧2015-09-09C#(.Net)將非托管dll嵌入exe中的實現(xiàn)
本文主要介紹了C#(.Net)將非托管dll嵌入exe中的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12C# Distinct和重寫IEqualityComparer時要知道的二三事
這篇文章主要給大家介紹了關(guān)于C# Distinct和重寫IEqualityComparer時要知道的二三事,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-06-06