鱼C论坛

 找回密码
 立即注册
查看: 1657|回复: 2

[已解决]各路大神,问下这里尾数后面的1是怎么变成4的,为啥后来又没变回1

[复制链接]
发表于 2017-9-26 00:20:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
main ()
{
        double k1=0.2,k2=k1;
        printf ("%.32lf\n",k1);
        printf ("%.32lf\n",k2);
        k2=k1+0.1;printf("%.32lf\n",k2);
        k2=k2-0.1;printf ("%.32lf\n",k2);
}
输出结果:
0.20000000000000001000000000000000
0.20000000000000001000000000000000
0.30000000000000004000000000000000
0.20000000000000004000000000000000
最佳答案
2017-9-26 09:47:42
精度损失,最多只能精确到16位,后16位为系统的随机数据
如我本地电脑编译的输出的值:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-26 09:25:15 | 显示全部楼层
应该是计算的时候精度的损失吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-26 09:47:42 | 显示全部楼层    本楼为最佳答案   
精度损失,最多只能精确到16位,后16位为系统的随机数据
如我本地电脑编译的输出的值:
TIM截图20170926094704.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 19:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表