搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 想问一个问题,关于浮点数精度的,出现了一个奇怪的情况
标题:
想问一个问题,关于浮点数精度的,出现了一个奇怪的情况
取消只看楼主
t_dcy
等 级:
新手上路
帖 子:18
专家分:0
注 册:2019-11-27
结帖率:
75%
楼主
已结贴
√
问题点数:20 回复次数:3
想问一个问题,关于浮点数精度的,出现了一个奇怪的情况
两个无法精确存储的小数,按人的认知来讲,例如0.4+0.6运算完成为一个可以精确表示的数字,
而对于计算机来讲,始终以二进制运算,那运算结果一个也不精确,可是出现了下面的情况,想问一下为什么?
另外数据从内存中拿出来到寄存器中进行运算时,是始终保持二进制的吧?
搜索更多相关主题的帖子:
精确
精度
出现
运算
浮点数
2019-12-16 11:18
t_dcy
等 级:
新手上路
帖 子:18
专家分:0
注 册:2019-11-27
第
2
楼
得分: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
等 级:
新手上路
帖 子:18
专家分:0
注 册:2019-11-27
第
3
楼
得分: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
等 级:
新手上路
帖 子:18
专家分:0
注 册:2019-11-27
第
4
楼
得分:0
回复 5楼 rjsp
感谢,感谢
2019-12-16 13:06
4
1/1页
1
参与讨论请移步原网站贴子:
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