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

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

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭