J题用double做只对一半改为longlongint就全对

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
 double x,a,y,b;
 while(cin>>x>>a>>y>>b)
 {
  double xa=floor(x/a);
  double yb=floor(y/b);
  if(xa>yb){
   cout<<">\n";
  }
  else if(xa<yb){
   cout<<"<\n";
  }
  else 
  {
   double aa=fmod(x,a)*b,bb=fmod(y,b)*a;
   if(aa>bb) cout<<">\n";
   else if(aa==bb) cout<<"=\n";
   else cout<<"<\n";
  }
   
 } 
 return 0;
}
double都改为long long int就都对了,为什么?

全部评论
浮点误差吧
点赞
送花
回复 分享
发布于 2019-07-19 20:44

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务