注册 登录
编程论坛 C++教室

A-B和B-A的问题

crystal_1123 发布于 2016-04-26 00:44, 3885 次点击
求教:C++在编写A-B和B-A时为什么计算出来的结果不正好是相反数以及解决办法?A,B均为double型,计算结果第十位出现不一样。
坐等解答,感谢!
5 回复
#2
rjsp2016-04-26 08:23
连提问都不会?!
说A等于几,B等于几,你又是怎么认定其不一样的?
写出你完整的代码
#3
crystal_11232016-04-26 12:33
回复 2楼 rjsp
A=-238.7995074492,B=-220.4132570251;求的是(A-B)/(2*dx)和(B-A)/(2*dx);dx=0.2e-3;两者算出来的值在第十位数字不一样。
#4
rjsp2016-04-26 13:01
叫你贴代码嘛,你又不肯
“两者算出来的值在第十位数字不一样”又不知道你是怎么测试的
#5
rjsp2016-04-26 13:04
程序代码:
#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
#6
crystal_11232016-05-01 15:55
回复 5楼 rjsp
已经找到问题了,不是输出的问题。A在A-B和B-A中小数点10位以后不是一样的,所以问题没出在这里。谢谢楼主抽时间回答我的问题!
1