永发信息网

linux C 下定义float 52.1 输出怎么是52.099999

答案:4  悬赏:20  手机版
解决时间 2021-01-25 13:21
  • 提问者网友:感性作祟
  • 2021-01-25 08:21
linux C 下定义float 52.1 输出怎么是52.099999
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-01-25 09:46
很正常,这和浮点数在计算机中的表示有关!
浮点数在计算机中是采用二进制科学计数法存储的。
一、浮点数转换成二进制
52.1=110100.0001100110011(小数部分不能完全转换)
二、表示成二进制科学计数法
1.101000001100110011 * 2^5
三、按IEEE754进行数据存储
因此,再将内存中的数据转换成十进制输出来的数据不是完整的52.1,只是非常接近它。
全部回答
  • 1楼网友:毛毛
  • 2021-01-25 11:58
代码呢?追问加了
  • 2楼网友:不如潦草
  • 2021-01-25 11:44
float a=52.1;
printf("%.1f",a);
  • 3楼网友:拾荒鲤
  • 2021-01-25 11:11
float a=52.1;
printf(".1f",a);追问不加保留小数 这个跟内存 或者 存储方式有干什么关系呢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯