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

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务