qq_58856912 2021-11-05 10:50 采纳率: 50%
浏览 105
已结题

c语言运算浮点型转换整形问题

#include<stdio.h>
int main()
{
double c, t;
scanf("%lf",&c);
t=(c-(int)c)*1000;printf("%f ",t);
int b=t;
printf("%d",b);
return 0;
}
假设我输入的是131.01,为什么输出结果b等于9?

img

  • 写回答

1条回答 默认 最新

  • 从善若水 5G/6G通信领域优质创作者 2021-11-05 11:09
    关注

    这个很正常,浮点数有精度问题,甚至不同计算机计算出的结果都有差异。你换一台计算机计算的结果可能就是10.

    所以我们才需要定义精度范围。

    如果有帮助麻烦您采纳一下

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

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 11月5日

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退