| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3758 人关注过本帖
标题:A-B和B-A的问题
只看楼主 加入收藏
crystal_1123
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:11
专家分:3
注 册:2012-4-16
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:5 
A-B和B-A的问题
求教:C++在编写A-B和B-A时为什么计算出来的结果不正好是相反数以及解决办法?A,B均为double型,计算结果第十位出现不一样。
坐等解答,感谢!
搜索更多相关主题的帖子: double 
2016-04-26 00:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
连提问都不会?!
说A等于几,B等于几,你又是怎么认定其不一样的?
写出你完整的代码
2016-04-26 08:23
crystal_1123
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:11
专家分:3
注 册:2012-4-16
收藏
得分:0 
回复 2楼 rjsp
A=-238.7995074492,B=-220.4132570251;求的是(A-B)/(2*dx)和(B-A)/(2*dx);dx=0.2e-3;两者算出来的值在第十位数字不一样。
2016-04-26 12:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
叫你贴代码嘛,你又不肯
“两者算出来的值在第十位数字不一样”又不知道你是怎么测试的
2016-04-26 13:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:10 
程序代码:
#include <stdio.h>

int main( void )
{
    double A = -238.7995074492;
    double B = -220.4132570251;
    double dx = 0.2e-3;

    double x = (A-B)/(2*dx);
    double y = (B-A)/(2*dx);

    printf( "%+.36lf\n", x );
    printf( "%+.36lf\n", y );

    return 0;
}
一种可能的输出
-45965.626060250026057474315166473388671875
+45965.626060250026057474315166473388671875
2016-04-26 13:04
crystal_1123
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:11
专家分:3
注 册:2012-4-16
收藏
得分:0 
回复 5楼 rjsp
已经找到问题了,不是输出的问题。A在A-B和B-A中小数点10位以后不是一样的,所以问题没出在这里。谢谢楼主抽时间回答我的问题!
2016-05-01 15:55
快速回复:A-B和B-A的问题
数据加载中...
 
   



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

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