阅读背景:

C++ pow()函数计算结果转换为整型时产生误差的问题

来源:互联网 

在LeetCode上在线刷题遇到的问题,简化为如下的问题:

int main(){
   long int x = 61453901951867000;
   long int y;
   cout<<fixed<<setprecision(15)<<5*(pow(10, 1))<<endl;  //输出50.000000000000000
   y = x + 5*(pow(10, 1));
   /*********************************************************************
   //其实等价于如下两行
   double j = 5*(pow(10, 1));
   y = x + j;          //如果是隐式类型转换会出问题,但如果强制类型转换就没有问题
   *********************************************************************/
   cout<<y<<endl;           //结果为61453901951867048
}int main



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: