| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 992 人关注过本帖
标题:有关于C语言计算时数字长度的问题,求助各位大神
只看楼主 加入收藏
zhhrdyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-10-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
有关于C语言计算时数字长度的问题,求助各位大神
在C语言计算中,譬如我定义了两个double型数组,其中a为10的7次方,另一个数b为1.797571乘以十的负5次方,那么显然,在我执行a+b的操作时,由于double型的精度问题,b中靠后的若干项都会被程序自动省去,而这一部分对于我的计算是必不可少的。那么应该用怎样的方法,可以在计算时将后面的位数都保留好,不会被隐掉呢?对了,不可以使用a b两字分别储存的方法,因为可以理解为我要做的总体计算是b/(a+b)
不胜感激!

[此贴子已经被作者于2016-10-31 22:42编辑过]

2016-10-31 15:26
zhhrdyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-10-31
收藏
得分:0 
哦对了,longdouble型是没有用的,因为实测发现使用longdouble定义a和b之后输出的计算结果仍没有b中后面几位上的值。。。

[此贴子已经被作者于2016-10-31 22:43编辑过]

2016-10-31 15:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
我要做的总体计算是b/a+b ------ 是b/(a+b)吧
使用longdouble定义a和b之后输出的计算结果仍没有后面位数上的值。。。------ 听不懂

希望你用的是gcc,参见 http://m.blog.
2016-10-31 21:54
zhhrdyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-10-31
收藏
得分:0 
回复 3楼 rjsp
是的,是b/(a+b)
显示不出来的意思是,就算是使用longdouble型,一个较大的整数(譬如1e7)加上一个1e-7之后还有几位的小数,得出的结果只能显示出整数部分和部分小数,并不能显示所有的小数位(小数点后八位以后),也就是说程序并不储存那么多位,直接把后面的忽略掉了。。。
2016-10-31 22:39
zhhrdyx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-10-31
收藏
得分:0 
回复 3楼 rjsp
用的应该不是GCC,普通的visual studio。。。具体GCC GNU之类的不太了解,不是计算机专业的。。。水平不高
2016-10-31 22:41
快速回复:有关于C语言计算时数字长度的问题,求助各位大神
数据加载中...
 
   



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

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