烤鸡kaoji 2021-10-08 10:20 采纳率: 44.4%
浏览 27
已结题

写了一个输入浮点型数输出该数有几位小数的程序但是结果一直有问题

这是最后输出的结果 我不知道那个0.400001是怎么来的

img

#include <stdio.h>

int main(){

float x,m;
int i=1;
scanf("%f",&m);

int c=(int)m;
x=m-c;
while((x10-(int)(x10))!=0){
printf("%f\n",x);
x=x10-(int)(x10);

i++;

}
printf("小数有%d位\n",i);
return 0;
}
  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-10-08 10:21
    关注

    你最好当字符串接收,不然浮点数是有精度问题,不好计算有多少位小数
    当字符串接收,找到小数点,然后看小数点后面还有几个字符就行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月8日

悬赏问题

  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥15 小红薯封设备能解决的来
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'
  • ¥15 vue+element项目中多tag时,切换Tab时iframe套第三方html页面需要实现不刷新
  • ¥50 深度强化学习解决能源调度问题