W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
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)類型具有特定操作對(duì)待的值。
這些特殊值是NaN(非數(shù)字),+無窮大,-Infinity和-0。
例如:
Console.WriteLine (double.NegativeInfinity); // -Infinity
表示double和float的特殊值的常量如下:
特殊值 | 雙常量 | 浮點(diǎn)常量 |
---|---|---|
NaN | double.NaN | float.NaN |
+infinity | double.PositiveInfinity | float.PositiveInfinity |
-infinity | double.NegativeInfinity | float.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
double
可用于科學(xué)計(jì)算。decimal
對(duì)于財(cái)務(wù)計(jì)算很有用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: