在c#语言中的数字有两个特性要了解。例如:任何数除以0所得的结果是无穷大,不在int long 和decimal类型的范围内。所以计算(一个数除以0会出错),但是在double和float类型中有一个可以表示无穷大的特殊值(infinity无穷大)。这个规则的唯一例外的表达式是0.0/0.0,通常如果0除以任何数结果都是0,但是任何数除以0结果是无穷大。这样就会陷入矛盾的境地,针对这种情况,c#提供了另一个值NaN,(not a number)。所以如果计算表达式0.0/0.0,则结果为NaN,NaN和Infinity可以在表达式中使用。计算10+NaN = NaN,10+Infinity = Infinity。例外的是Infinity*0 = 0 NaN*0 = NaN。
在C和C++中,不允许对float和double值使用取模运算符,但是在C#中是允许使用的,而且结果不一定是整数。