Fortran Coder

标题: Fortran 双精度浮点数的精度不高,怎么回事? [打印本页]

作者: fuys    时间: 2022-1-18 20:50
标题: Fortran 双精度浮点数的精度不高,怎么回事?
本人打算用Fortran做一些数值计算,由于要多次用到三角函数,而且处理的数字都不大,所以对数字的精度有比较高的要求。我测试了一下Fortran 双精度浮点数的精度,发现它只能精确显示到小数点后8位啊,有图如下:

程序运行后的输出如下:

而用C语言编的程序,输出如下:

从这两个程序的输出来看,Fortran浮点数的精度比不上C啊。不知道是我编写的问题,还是Fortran自身的问题,有大佬可以指教下吗? 谢谢了!

作者: weixing1531    时间: 2022-1-19 01:08
浮点数默认为单精度
改成这样就好了
a=4.0d0/9或者a=4.0_8/9

作者: fcode    时间: 2022-1-19 08:05
gfortran -fdefault-real-8 example1.f90  这样也可以的

作者: fuys    时间: 2022-1-19 09:06
weixing1531 发表于 2022-1-19 01:08
浮点数默认为单精度
改成这样就好了
a=4.0d0/9或者a=4.0_8/9

谢谢 大佬!
作者: fuys    时间: 2022-1-19 09:30
fcode 发表于 2022-1-19 08:05
gfortran -fdefault-real-8 example1.f90  这样也可以的

谢谢 大佬!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2