欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#數(shù)值轉(zhuǎn)換-顯式數(shù)值轉(zhuǎn)換表(參考)

 更新時(shí)間:2013年04月01日 12:00:39   作者:  
就是在將一種類型轉(zhuǎn)換成另外一種類型時(shí),需要額外的代碼來完成這種轉(zhuǎn)換。

什么是顯式轉(zhuǎn)換

Explicit Conversion
就是在將一種類型轉(zhuǎn)換成另外一種類型時(shí),需要額外的代碼來完成這種轉(zhuǎn)換。

復(fù)制代碼 代碼如下:

int n = 1;
byte b = (byte)n; // 正確,顯式轉(zhuǎn)換
byte b2 = n;      // 錯(cuò)誤

顯式轉(zhuǎn)換需要注意,它的結(jié)果不一定是我們想要的。

復(fù)制代碼 代碼如下:

int n = 256;
byte b = (byte)n; // 結(jié)果是 0


上面的結(jié)果是 0,因?yàn)槌^ 255 了,它就從 0 開始;
如果 n 是 257,那么 b 就是 1;

如果 n 是 258,那么 b 就是 2;
……

由此還得說下 Convert,Convert 這個(gè)類用來轉(zhuǎn)換類型,它有很多方法,比如 ToInt32,就是轉(zhuǎn)換成 int。它涉及的類型跨度很大,比如可將 object、string 等轉(zhuǎn)換成 int,而 (int) 則只能將數(shù)字類型轉(zhuǎn)換成 int。

更多相關(guān)內(nèi)容,請(qǐng)參見 Convert、Parse、TryParse、(int) 的區(qū)別。
顯式數(shù)值轉(zhuǎn)換表(摘自 MSDN)

sbyte

byteushort、uint、ulong  char

byte

Sbyte 或者char

short

sbyte、byte、ushortuint、ulong  char

ushort

sbyte、byte、short  char

int

sbyte、byte、short、ushort、uintulong  char

uint

sbyte、byte、short、ushort、int  char

long

sbyte、byte、short、ushort、int、uintulong  char

ulong

sbyte、byte、shortushort、int、uint、long  char

char

sbytebyte  short

float

sbyte、byte、short、ushort、intuint、longulong、char  decimal

double

sbyte、byte、short、ushort、int、uint、long、ulong、char、float  decimal

decimal

sbyte、byte、short、ushort、int、uint、long、ulong、char、float  double

備注(摘自 MSDN)

顯式數(shù)值轉(zhuǎn)換可能導(dǎo)致精度損失或引發(fā)異常。
將 decimal 值轉(zhuǎn)換為整型時(shí),該值將舍入為與零最接近的整數(shù)值。如果結(jié)果整數(shù)值超出目標(biāo)類型的范圍,則會(huì)引發(fā) OverflowException。
將 double 或 float 值轉(zhuǎn)換為整型時(shí),值會(huì)被截?cái)?。如果該結(jié)果整數(shù)值超出了目標(biāo)值的范圍,其結(jié)果將取決于溢出檢查上下文。在 checked 上下文中,將引發(fā) OverflowException;而在 unchecked 上下文中,結(jié)果將是一個(gè)未指定的目標(biāo)類型的值。
將 double 轉(zhuǎn)換為 float 時(shí),double 值將舍入為最接近的 float 值。如果 double 值因過小或過大而使目標(biāo)類型無(wú)法容納它,則結(jié)果將為零或無(wú)窮大。
將 float 或 double 轉(zhuǎn)換為 decimal 時(shí),源值將轉(zhuǎn)換為 decimal 表示形式,并舍入為第 28 個(gè)小數(shù)位之后最接近的數(shù)(如果需要)。根據(jù)源值的不同,可能產(chǎn)生以下結(jié)果:
如果源值因過小而無(wú)法表示為 decimal,那么結(jié)果將為零。
如果源值為 NaN(非數(shù)字值)、無(wú)窮大或因過大而無(wú)法表示為 decimal,則會(huì)引發(fā) OverflowException。
將 decimal 轉(zhuǎn)換為 float 或 double 時(shí),decimal 值將舍入為最接近的 double 或 float 值。

相關(guān)文章

最新評(píng)論