标题:想问一个问题,关于浮点数精度的,出现了一个奇怪的情况
取消只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498422-1-1.html




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

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