C# 數(shù)值

2018-01-16 00:54 更新

C#數(shù)值

8位和16位整數(shù)

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

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

當嘗試將結果分配回小的整數(shù)類型時,可能會導致編譯時錯誤:


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

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

結果也是一個int,不能隱式轉換為短。

為了使這個編譯,我們必須添加一個顯式轉換:


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

特殊浮點值和雙精度值

浮點類型具有特定操作對待的值。

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

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

例如:


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

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

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

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


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 

當使用==,NaN值永遠不等于另一個值,甚至另一個NaN值:


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

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


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

但是,當使用object.Equals時,兩個NaN值相等:


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


雙十進制

double 可用于科學計算。decimal 對于財務計算很有用。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號