| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1491 人关注过本帖
标题:想问一个问题,关于浮点数精度的,出现了一个奇怪的情况
取消只看楼主 加入收藏
t_dcy
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2019-11-27
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:3 
想问一个问题,关于浮点数精度的,出现了一个奇怪的情况
两个无法精确存储的小数,按人的认知来讲,例如0.4+0.6运算完成为一个可以精确表示的数字,
而对于计算机来讲,始终以二进制运算,那运算结果一个也不精确,可是出现了下面的情况,想问一下为什么?
另外数据从内存中拿出来到寄存器中进行运算时,是始终保持二进制的吧?
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 精确 精度 出现 运算 浮点数 
2019-12-16 11:18
t_dcy
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2019-11-27
收藏
得分:0 
回复 楼主 t_dcy
抱歉抱歉,忘了复制代码了,实在不好意思
我看懂了您的意思,但是我自己试验还是有点问题,我用的是Dev C++,不知道是不是编译器的问题,我想像中的结果应该和您的一样,但是我的结果实在这样的:
#include<stdio.h>
int main()
{
    float a=0.4,b=0.6;
    printf("a=%15.10f\nb=%15.10f\n",a,b);
    printf("a+b=%13.30f",a+b);
    return 0;
 }
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-12-16 12:34
t_dcy
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2019-11-27
收藏
得分:0 
回复 楼主 t_dcy
抱歉抱歉,忘了复制代码了,实在不好意思
我看懂了您的意思,但是我自己试验还是有点问题,我用的是Dev C++,不知道是不是编译器的问题,我想像中的结果应该和您的一样,但是我的结果实在这样的:
#include<stdio.h>
int main()
{
    float a=0.4,b=0.6;
    printf("a=%15.10f\nb=%15.10f\n",a,b);
    printf("a+b=%13.30f",a+b);
    return 0;
 }
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-12-16 12:34
t_dcy
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2019-11-27
收藏
得分:0 
回复 5楼 rjsp
感谢,感谢
2019-12-16 13:06
快速回复:想问一个问题,关于浮点数精度的,出现了一个奇怪的情况
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024106 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved