fuys 发表于 2022-1-18 20:50:54

Fortran 双精度浮点数的精度不高,怎么回事?

本人打算用Fortran做一些数值计算,由于要多次用到三角函数,而且处理的数字都不大,所以对数字的精度有比较高的要求。我测试了一下Fortran 双精度浮点数的精度,发现它只能精确显示到小数点后8位啊,有图如下:

程序运行后的输出如下:

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

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

weixing1531 发表于 2022-1-19 01:08:10

浮点数默认为单精度
改成这样就好了
a=4.0d0/9或者a=4.0_8/9

fcode 发表于 2022-1-19 08:05:35

gfortran -fdefault-real-8 example1.f90这样也可以的

fuys 发表于 2022-1-19 09:06:07

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

谢谢 大佬!

fuys 发表于 2022-1-19 09:30:35

fcode 发表于 2022-1-19 08:05
gfortran -fdefault-real-8 example1.f90这样也可以的

谢谢 大佬!
页: [1]
查看完整版本: Fortran 双精度浮点数的精度不高,怎么回事?