2

cmath を使用せずに double 型の 2 つの入力のフロアを取得するにはどうすればよいですか。洞察をいただければ幸いです..ありがとう

 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() を実装する 1 つの方法です。

于 2012-10-23T19:35:34.060 に答える