C# 變數型別 : int, float, double, decimal

此為學習筆記,如果有錯誤或是相關資訊歡迎留言告知與分享,謝謝!

int 

e.g., 

int num = 888;

  • 定義:帶正負號的32位元整數

int16? int32? int64?

  • 差異:所需要的記憶體大小不同

      16位元、32位元、64位元

      所需位元數越大,則可存整數大小越大

      如果寫int,則指int32

 


float

e.g., 

float a = 3. 123456f;

float a = 3. 123456F;

 

  • 定義:精準度達小數後6位數
  • 需加後置字元( f 或 F ),否則會視此變數為double

 

若宣告float變數時,超過小數點後6位數呢??

e.g., 

  • float a = 3.1234567f

           印出結果

           3.123457

  • float a = 3.1234560f

          印出結果

          3.123456

 


double

e.g., 

double b = 0.12345678901234d;

double b = 0.12345678901234D;

 

  • 定義:精準度達小數後14位數
  • 雖然預設型別是double,還是會習慣加後置字元( d 或 D )

 

若宣告double變數時,超過小數點後14位數呢??

ex: 

  • double a = 3.123456789012345d

           印出結果

            3.12345678901235

  • double  a = 3.123456789012340d

          印出結果

           3.12345678901234

 


decimal
e.g.,

decimal c = 7.1234567890123456789012345678m;

decimal c = 7.1234567890123456789012345678M;

 

  • 金錢上的計算,通常會用這個型別
  • 定義:精準度達小數後28位數
  • 需加後置字元( m或 M ),否則會視此變數為double

 

若宣告decimal變數時,超過小數點後28位數呢??

e.g., 

  • decimal c = 7.12345678901234567890123456789m;

           印出結果

           7.1234567890123456789012345679 

  • decimal c = 7.12345678901234567890123456780m;

           印出結果

           7.1234567890123456789012345678 

 


參考網站

Value Type

https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/keywords/