主题:精度!精度!
原贴“各位帮忙看看我的问题”中,那个算法我是证明过的,用其它语言也算过,肯定是能退出的,但不知为什么在FORTRAN中就是不行。我能找到的问题就只有精度问题了,举个例子:
已知:1.52368*2.0=3.047360
但是,我在FORTRAN中试验了一下,如果令:
REAL(KIND=8)::A=1.52368,然后:
WRITE(*,"(F10.8)") A*2.0
结果并不等于3.04736000
这个微小的精度差异或许在不停的循环迭代中会对最后的结果有重大影响。
我不知道自己这个猜想对不对,想证明一下,但是不知道该如何去写代码。在上面的例子中就是,如何能让他输出准确的结果
已知:1.52368*2.0=3.047360
但是,我在FORTRAN中试验了一下,如果令:
REAL(KIND=8)::A=1.52368,然后:
WRITE(*,"(F10.8)") A*2.0
结果并不等于3.04736000
这个微小的精度差异或许在不停的循环迭代中会对最后的结果有重大影响。
我不知道自己这个猜想对不对,想证明一下,但是不知道该如何去写代码。在上面的例子中就是,如何能让他输出准确的结果