using Fasterflect;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication2
{
class Program_NaNAndInfinity
{
static void Main(string[] args)
{
/*
C#语言中,对于 int,long 和 decimal类型的数,任何数除以 0 所得的结果是无穷大,不在int,long 和 decimal 类型的范围之内,所以计算 6/0 之类的表达式会出错。
但是,double 和 float 类型实际上有一个可以表示无穷大的特殊值:5.0/0.0 = Infinity (无穷大),这个规则唯一的例外是0.0/0.0 = NaN (Not a Number)。
*/
// 表示不是数字 (NaN) 的值
Console.WriteLine("NaN == NaN: {0}", Double.NaN == Double.NaN);
Console.WriteLine("NaN != NaN: {0}", Double.NaN != Double.NaN);
Console.WriteLine("NaN.Equals(NaN): {0}", Double.NaN.Equals(Double.NaN));
Console.WriteLine("! NaN.Equals(NaN): {0}", !Double.NaN.Equals(Double.NaN));
Console.WriteLine("IsNaN: {0}", Double.IsNaN(Double.NaN));
Console.WriteLine("\nNaN > NaN: {0}", Double.NaN > Double.NaN);
Console.WriteLine("NaN >= NaN: {0}", Double.NaN >= Double.NaN);
Console.WriteLine("NaN < NaN: {0}", Double.NaN < Double.NaN);
Console.WriteLine("NaN < 100.0: {0}", Double.NaN < 100.0);
Console.WriteLine("NaN <= 100.0: {0}", Double.NaN <= 100.0);
Console.WriteLine("NaN >= 100.0: {0}", Double.NaN > 100.0);
Console.WriteLine("NaN.CompareTo(NaN): {0}", Double.NaN.CompareTo(Double.NaN));
Console.WriteLine("NaN.CompareTo(100.0): {0}", Double.NaN.CompareTo(100.0));
Console.WriteLine("(100.0).CompareTo(Double.NaN): {0}", (100.0).CompareTo(Double.NaN)); // double.PositiveInfinity, float.PositiveInfinity 此常数的值是正数被零除所得到的结果。当运算结果大于 MaxValue 时,返回此常数。
Console.WriteLine("5 / 2 = {0}", 5 / 2); // 2
Console.WriteLine("5.0 / 2.0 = {0}", 5.0 / 2.0); // 2.5
Console.WriteLine("5.0 / 2 = {0}", 5.0 / 2); // 2.5
Console.WriteLine("5 / 2.0 = {0}", 5 / 2.0); // 2.5
Console.WriteLine("5.0 / 0.0 = {0}", 5.0 / 0.0); // Infinity
Console.WriteLine("5.0 / 0 = {0}", 5.0 / 0); // Infinity
Console.WriteLine("0.0 / 0.0 = {0}", 0.0 / 0.0); // NaN
Console.WriteLine("5 / 0.0 = {0}", 5 / 0.0); // Infinity
Console.WriteLine("0.0 / 0 = {0}", 0.0 / 0); // NaN
Console.WriteLine("double.MinValue < double.PositiveInfinity : {0}", double.MinValue <= double.PositiveInfinity);
Console.WriteLine("double.MinValue > double.PositiveInfinity : {0}", double.MinValue >= double.PositiveInfinity);
Console.WriteLine("double.MaxValue < double.PositiveInfinity : {0}", double.MaxValue <= double.PositiveInfinity);
Console.WriteLine("double.MaxValue > double.PositiveInfinity : {0}", double.MaxValue >= double.PositiveInfinity); // double.NegativeInfinity, float.NegativeInfinity 此常数的值是负数被零除所得到的结果。当运算结果小于 MinValue 时,返回此常数。
Console.WriteLine("-5 / 2 = {0}", -5 / 2); // 2
Console.WriteLine("-5.0 / 2.0 = {0}", -5.0 / 2.0); // -2.5
Console.WriteLine("-5.0 / 2 = {0}", -5.0 / 2); // -2.5
Console.WriteLine("-5 / 2.0 = {0}", -5 / 2.0); // -2.5
Console.WriteLine("-5.0 / 0.0 = {0}", -5.0 / 0.0); // Infinity
Console.WriteLine("-5.0 / 0 = {0}", -5.0 / 0); // Infinity
Console.WriteLine("0.0 / 0.0 = {0}", 0.0 / 0.0); // NaN
Console.WriteLine("-5 / 0.0 = {0}", -5 / 0.0); // Infinity
Console.WriteLine("0.0 / 0 = {0}", 0.0 / 0); // NaN
Console.WriteLine("double.MinValue < double.NegativeInfinity : {0}", double.MinValue <= double.NegativeInfinity);
Console.WriteLine("double.MinValue > double.NegativeInfinity : {0}", double.MinValue >= double.NegativeInfinity);
Console.WriteLine("double.MaxValue < double.NegativeInfinity : {0}", double.MaxValue <= double.NegativeInfinity);
Console.WriteLine("double.MaxValue > double.NegativeInfinity : {0}", double.MaxValue >= double.NegativeInfinity); // 判断是否为无穷大
Console.WriteLine("float.IsInfinity(0.5F) = {0}", float.IsInfinity(0.5F)); // false
Console.WriteLine("float.IsInfinity(float.NegativeInfinity) = {0}", float.IsInfinity(float.NegativeInfinity)); // true
Console.WriteLine("float.IsInfinity(float.PositiveInfinity) = {0}", float.IsInfinity(float.PositiveInfinity)); // true // 判断是否为NaN 或者 Infinity只能使用 double.IsNaN()及float.IsInfinity() // 参考资料: https://msdn.microsoft.com/zh-cn/library/system.double.nan(v=vs.110).aspx Console.Read();
}
}
}

最新文章

  1. Centos6下安装高版本Git
  2. jdbctemplate中的批量更新使用,BigDecimal与造型的联系和区别
  3. Cef 架构
  4. Day Tips:Search CPU 100%
  5. codeforces 342E :Xenia and Tree
  6. UAT 环境
  7. ios基础篇(七)——UISwich、UISlider、UIProgressView的用法总结
  8. asp.net mvc @RenderBody()的问题
  9. Spring MVC框架理解
  10. oracle在一个字符串中查找某个字符出现过几次
  11. mobiscroll 插件札记(一)
  12. MATLAB命令大全和矩阵操作大全
  13. DotNetCore跨平台~linux上还原自主nuget包需要注意的问题
  14. 出现“Unable to resolve target &#39;android-XXX&#39;”怎么处理?
  15. hadoop实现倒排索引
  16. 11G新特性 -- 分区表和增量统计信息
  17. Android悬浮窗及其拖动事件
  18. csdn上讲一个实时计算架构比较清晰的一篇文章
  19. webBrowser.Document.Cookie取不到HttpOnly的Cookie,取Cookie不完整
  20. Spring事务属性具体解释

热门文章

  1. Asp.Net 之 枚举类型的下拉列表绑定
  2. SQL Server三种表连接原理
  3. 基于 Equinox 的 OSGi Console 的研究和探索
  4. Android 高级UI设计笔记15:HorizontalScrollView之 实现画廊式图片浏览器
  5. Django升级1.6之后出现“Bad Request (400)”错误的解决方案
  6. windows下mongoengine报错False is not a read preference.的解决办法
  7. codeforces 680C C. Bear and Prime 100(数论)
  8. hdu 3111 DLX解数独
  9. poj动态规划列表
  10. OpenShare新功能@2014年第三季度