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

(用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);

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

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功