读书人

怎么判断一个浮点数小数部分全部是0

发布时间: 2012-02-28 13:06:36 作者: rapoo

如何判断一个浮点数小数部分全部是0?
如何判断一个浮点数小数部分全部是0?

[解决办法]
尽量避免这种需要。
浮点数不能用于需要精确运算的场合。
使用浮点数,你只能指望误差足够小。
[解决办法]
p = p - round(p);
if( !(p> 0) && !(p <0)) {...}
[解决办法]
p = p - round(p);
if( !(p> 0) && !(p <0)) {...}

上楼,这个比较仍然是不精确的
[解决办法]
p = p - round(p);
if( p> -0.0000001) && p <0.00000001)) {...}
[解决办法]

if (fabs(f - (int)f) < FLT_EPSILON)
{

}
[解决办法]

struct floatStruct
{
unsigned mantissa: 23;
unsigned exponent: 8;
unsigned sign: 1;

};

int main()
{
float x = 1.0;
floatStruct *p = (floatStruct*)&x;
if ( ( (floatStruct*)&x )-> mantissa == 0)
printf( "all zero bit in mantissa\n ");


return 0;
}
[解决办法]
mark
[解决办法]
尾数部分为0不代表小数部分为0啊
这个很难啊
[解决办法]
说说你的原始需求吧。

读书人网 >C语言

热点推荐