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

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

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

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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


上面的結果是 0,因為超過 255 了,它就從 0 開始;
如果 n 是 257,那么 b 就是 1;

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

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

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

sbyte

byte、ushort、uint、ulong  char

byte

Sbyte 或者char

short

sbytebyte、ushort、uint、ulong  char

ushort

sbyte、byteshort  char

int

sbyte、byteshort、ushort、uintulong  char

uint

sbyte、byte、short、ushort、int  char

long

sbytebyte、short、ushort、int、uintulong  char

ulong

sbyte、byte、shortushort、int、uintlong  char

char

sbyte、byte  short

float

sbyte、byte、short、ushort、int、uintlong、ulongchar  decimal

double

sbyte、byte、shortushort、intuint、long、ulong、char、float  decimal

decimal

sbyte、byte、shortushort、intuint、long、ulong、char、float  double

備注(摘自 MSDN)

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

相關文章

最新評論