NAN,IND,INF,DEN的概念

1)NAN - Not A Number。意思是不是一个数值。VS调试显示类似”1.#QNAN00000000000“。

产生原因:无意义的算术计算如负数开方。判断方法:包含float.h头文件,调用_isnan()。

2)IND - Indeterminate Number。意思是不确定数值。VS调试显示类似“1.#IND000000000000”。

是NAN的一种特殊情况。产生原因:0除0,或无限大除无限大。判断方法通NAN

3)INF - Infinity。意思是无限大。VS调试显示类似“1.#INF000000000000”。

产生原因:如1/0.0的计算结果。判断方法:_finite()。

4)DEN - Denormalized。意思是非规格化数值。VS调试显示类似“4.940656458421e-324#DEN”。

无限接近0的值,无法用有限的位数保存的科学计数值。
dDenTest = 0.01E-305;
dDenTest /= 10; // This will produce a denormalized number.
dDenTest *= 10; // This will result in the previous normalized.
判断方法:
if ( dDEN != 0 && fabs ( dDEN ) <= std::numeric_limits<double>::denorm_min())
{
// it's denormalized
bDEN = true;
}

这些值的意义在其他平台上也是一致的,不过表达方式在不同的平台不同。

osg使用过程中,某个顶点数值为INF,导致场景范围计算错误,相机设置不正确而看不到对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值