double a = sqrt(-1.0); //负数开平方,返回NaN双精度数
if(a != a) //通过自己不等于自己简单判断 { printf("NaN\n"); }双精度数的分类,标准库提供了完整方法,上面的方法可以简单判断NaN
posted on 2011-07-16 19:18 魏兵 阅读(4961) 评论(5) 编辑 收藏 引用
a=1.0/0.0; 测试不出来。。。 回复 更多评论
@ly 1.0/0.0得到的是"正无穷",不是NaN,所以不行 浮点数的详细分类建议使用_fpclass函数 想给一个浮点变量直接赋值为"正无穷", double v = numeric_limits<double>::infinity() 回复 更多评论
@魏兵原来如此,3q 回复 更多评论
好神奇!具体原理是什么呢? 回复 更多评论
楼主辛苦了,我想说的是:有个东西叫Double.isNaN(a) 回复 更多评论
Powered by: C++博客 Copyright © 魏兵