2

如何在不使用 cmath 的情况下获得 double 类型的两个输入的下限:如果第一个输入为负,这就是它的工作原理,但对于不确定哪里出错的正整数则不起作用?任何见解表示赞赏..谢谢

 int main()
{
 floors=floor(n1);
 cout<< " The floor of value 1 is " <<floors<<endl;
 floors=floor(n2);
 cout<<" The floor of value 2 is " <<floors<<endl;


long floor(long f)
{
  if( (f+ 0.5) >= (int(f)-1) )
  return int (f)-1;
  else 
  return int (f);
}
4

2 回答 2

2

将其更改为:

long floor(double f)
{
    if( f >= 0.0 ) {
        return int(f);
    } else {
        return ( int(f) - 1 );
    }
}
于 2012-10-23T19:37:03.763 回答
0
double floor(double d)
{
    if(d>0)return static_cast<double(static_cast<int>(d));
    return static_cast<double>(static_cast<int>(d-1));
}

这是实现 floor() 的一种方法。

于 2012-10-23T19:35:34.060 回答