revolt_ 2018-11-07 02:01 采纳率: 50%
浏览 782
已采纳

(用code blocks)pow函数没有得到100得到的是99?

#include
#include
void main()
{
int i;
for(i=3;i>=0;i--)
printf("%d ",(int)pow(10,i));
}

            得到 1000 99 10 1
            想得到1000 100 10 1

            第一次发问太紧张了 写错了很多地方 抱歉抱歉啊 已经更新了
  • 写回答

1条回答 默认 最新

  • threenewbee 2018-11-07 02:04
    关注

    很正常,int是强制转换,不是四舍五入,而pow作为浮点运算有精度误差。
    可以用
    printf("%d ",(int)(pow(10,i)+0.5);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?