C# 數(shù)值

2018-01-16 00:54 更新

C#數(shù)值

8位和16位整數(shù)

8位和16位整數(shù)類型為byte,sbyte,short和ushort。

C#根據(jù)需要將它們隱式轉(zhuǎn)換為更大的類型。

當(dāng)嘗試將結(jié)果分配回小的整數(shù)類型時(shí),可能會(huì)導(dǎo)致編譯時(shí)錯(cuò)誤:


short x = 1, y = 1; 
short z = x + y; // Compile-time error 

x y 隱式轉(zhuǎn)換為 int ,以便可以執(zhí)行加法。

結(jié)果也是一個(gè)int,不能隱式轉(zhuǎn)換為短。

為了使這個(gè)編譯,我們必須添加一個(gè)顯式轉(zhuǎn)換:


short z = (short) (x + y);

特殊浮點(diǎn)值和雙精度值

浮點(diǎn)類型具有特定操作對(duì)待的值。

這些特殊值是NaN(非數(shù)字),+無窮大,-Infinity和-0。

float和double類具有NaN,+ Infinity和-Infinity的常量,以及其他值,如MaxValue,MinValue和Epsilon。

例如:


Console.WriteLine (double.NegativeInfinity); // -Infinity 

表示double和float的特殊值的常量如下:

特殊值雙常量浮點(diǎn)常量
NaNdouble.NaNfloat.NaN
+infinitydouble.PositiveInfinityfloat.PositiveInfinity
-infinitydouble.NegativeInfinityfloat.NegativeInfinity
-0-0.0-0.0f

將非零數(shù)除以零會(huì)導(dǎo)致無限值。例如:


Console.WriteLine ( 1.0 / 0.0); // Infinity 
Console.WriteLine (-1.0 / 0.0); // -Infinity 
Console.WriteLine ( 1.0 / -0.0); // -Infinity 
Console.WriteLine (-1.0 / -0.0); // Infinity 

將零除零,或從無窮大中減去無窮大,得到NaN。例如:


Console.WriteLine ( 0.0 / 0.0); // NaN 
Console.WriteLine ((1.0 / 0.0) - (1.0 / 0.0)); // NaN 

當(dāng)使用==,NaN值永遠(yuǎn)不等于另一個(gè)值,甚至另一個(gè)NaN值:


Console.WriteLine (0.0 / 0.0 == double.NaN); // False 

要測試值是否為NaN,必須使用float.IsNaN或double.IsNaN方法:


Console.WriteLine (double.IsNaN (0.0 / 0.0)); // True 

但是,當(dāng)使用object.Equals時(shí),兩個(gè)NaN值相等:


Console.WriteLine (object.Equals (0.0 / 0.0, double.NaN)); // True 


雙十進(jìn)制

double 可用于科學(xué)計(jì)算。decimal 對(duì)于財(cái)務(wù)計(jì)算很有用。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)