程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 詳解C#的數學類,Math,浮點數(中)

詳解C#的數學類,Math,浮點數(中)

編輯:C#入門知識

兩種浮點數據類型--float和double,是為了與ANSI/IEEE Std 754-1985(它是一種用於二進制浮點算術的IEEE標准)相一致而定義的.

float值由24位有符號尾數和一個8位有符號指數組成。精度大於為小數點後7位。值的范圍是從

-3.402823*1038到3.402823*1038 大於0的最小float值是1.401298*10-45這三個值分別對應的是

float.MinValue,float.MaxValue,float.Epsilon.

 

double值由53位有符號尾數和11位有符號指數組成,精度大約為小數點後15位到16位。值的范圍從

-1.79769313486232*10308到1.79769313486232*10308.大於0的最小double值是:4.94065645841247*10-324分別對應:

double.MinValue,double.MaxValue,double.Epsilon.

 

下面的代碼使一個浮點數除以0;

float f1=1;

float f2=0;

float f3=f1/f2;

 

看到上面的代碼,你是否會立馬想到DividedByZeroException。如果這些數是整數的話,的確會拋出異常,但是這些數是浮點數,這裡不會產生異常,

事實上,浮點數運算從來不會產生異常,因為f2並不是真正意義上的0,它只是一個與0非常接近的數(具體可以看我上篇文章)。在這種情況下f3等於一個特殊的值。它是Infinity(正無窮大),

如果將f1更改為-1,那麼f3的符號將是負的,它是-Infinity(負無窮大)。

你甚至可以對Infinity執行算術運算,例如,表達式1/f3等於0。

如果將f1更改為0,那麼f3將等於NaN(Not a Number,未知數).

判斷一個數是Infinity或者是NaN使用的是Single的靜態方法:

bool IsInfinity(float fValue);                      //判斷是否為無窮大

bool IsPositiveInfinity(float fValue);           //判斷是否為正無窮大

bool IsNegativeInfinty(float fValue);          //判斷是否為負無窮大

bool IsNaN(float fValue);                          //判斷是否為NaN

 

Single結構還定義了一些常量字段。

Single.PositiveInfinity.

Single.NegativeInfinity.

Single.NaN.

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved