C# 數(shù)字類型

2018-01-16 00:25 更新

C#數(shù)字類型

C#具有下表中顯示的預(yù)定義數(shù)字類型。

有符號整數(shù)

C#類型系統(tǒng)類型后綴大小范圍
sbyteSByte無后綴8位-27 ?2-1
shortInt16無后綴16位-215 至215 -1
intInt32無后綴32位-231 至231 -1
longInt64L64位-263 至263 -1

無符號整數(shù)

C#類型系統(tǒng)類型后綴尺寸范圍
byteByte無后綴8位0?28 -1
ushortUInt16無后綴16位0?216 -1
uintUInt32U32位0至232 -1
ulongUInt64UL64位0至264 -1

實數(shù)

C#類型系統(tǒng)類型后綴尺寸范圍
floatSingleF32位+/-(?10-45 ?1038 )
doubleDoubleD64位+/-(?10-328 ?10308 )
decimalDecimalM128位+/-(?10-28 ?1028 )

十進制類型通常用于財務(wù)計算。


數(shù)字常量

數(shù)字常量可以使用十進制或十六進制符號;十六進制用0x前綴表示。例如:


int x = 1; 
long y = 0x7F; 

實數(shù)常量可以使用十進制和/或指數(shù)符號。例如:


double d = 1.5; 
double million = 1E06; 

數(shù)字常量類型推斷

默認(rèn)情況下,編譯器將一個數(shù)字常量推斷為double或整數(shù)類型:

如果常量包含小數(shù)點或指數(shù)符號(E),則為雙精度。

常量類型是此列表中可以適合常量值的第一個類型:int,uint,long和ulong。

例如:


Console.WriteLine ( 1.0.GetType());    // Double (double) 
Console.WriteLine ( 1E06.GetType());   // Double (double) 
Console.WriteLine ( 1.GetType());      // Int32 (int) 
Console.WriteLine ( 0xF0000000.GetType()); // UInt32 (uint) 


數(shù)字后綴

數(shù)字后綴顯式定義常量的類型。

后綴可以是小寫或大寫,如下所示:

類別C#類型例子
Ffloatfloat f = 1.0F;
Ddoubledouble d = 1D;
Mdecimaldecimal d = 1.0M;
Uuintuint i = 1U;
Llonglong i = 1L;
ULulongulong i = 1UL;

指定浮點或十進制字面值時,應(yīng)始終應(yīng)用FM后綴。

沒有F后綴,以下行將無法編譯,因為4.5將被推斷為double類型,它沒有隱式轉(zhuǎn)換為float:


float f = 4.5F; 

相同的原則適用于十進制常量:


decimal d = -1231.13M; // Will not compile without the M suffix. 

整數(shù)到整數(shù)轉(zhuǎn)換

當(dāng)目標(biāo)類型可以表示源類型中的每個可能值時,整數(shù)轉(zhuǎn)換是隱式的。否則,需要顯式轉(zhuǎn)換。

例如:


int x = 12345;        // int is a 32-bit integral 
long y = x;           // Implicit conversion to 64-bit integral 
short z = (short)x;   // Explicit conversion to 16-bit integral 

浮點到浮點轉(zhuǎn)換

float可以隱式轉(zhuǎn)換為double,因為double可以表示float的每個可能的值。

反向轉(zhuǎn)換必須是顯式的。

浮點到整數(shù)轉(zhuǎn)換

所有整數(shù)類型可以隱式轉(zhuǎn)換為所有浮點類型:


int i = 1; 
float f = i; 

反向轉(zhuǎn)換必須是顯式的:


int i2 = (int)f; 

當(dāng)您從浮點數(shù)轉(zhuǎn)換為整數(shù)時,任何小數(shù)部分都將被截斷(丟失)。

十進制轉(zhuǎn)換

所有整數(shù)類型都可以隱式轉(zhuǎn)換為十進制類型。

對小數(shù)類型的所有其他數(shù)字轉(zhuǎn)換必須是顯式的。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號