综合技术
直播中

张晶晶

7年用户 219经验值
私信 关注
[问答]

为什么用int算出来的值怎么都不对?

   #include
   #include
    int main()
    {
            int n=5;
         int tmp1=0;
         int tmp2=0;
         int tmp3=0;
        int a=0;
        int i =0;
          for(i=0;i                   tmp1=pow(10,i);
                  tmp2=tmp2+tmp1;
                  tmp3=tmp3+tmp2;
          }
          printf("%d",tmp3);
    }
前面两次循环值都是正确的,第三次开始就出错了。10的2次方应该是100,但是他计算出来是99。
如果都用double类型算出来的值就是正确的。
这个是什么原因,求教大神。

回帖(2)

李可熠

2019-10-24 09:23:40
表示不相信啊。。。
举报

王丽娟

2019-10-24 09:29:07
pow() 函数的参数和返回值是float或者double类型的,所以应为double temp1 = 0,temp1 = pow(10.0,i)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分