回 帖 发 新 帖 刷新版面

主题:还有一个问题,请问如何在程序里把数字用科学计数法表示

请问大家:

在fortran里声明变量为double precision及双精度浮点型,但是在矩阵赋值的时候,有些数是用科学计数法表示的,有些不是,请问如何将所有数都变为科学计数法表示(并不是输出形式,而是在程序里变)?谢了~:)


如把
k(1,1) = 37465.49586
k(2,1) = 2.378669357676E-2
(貌似在表示很小的数的时候才用科学计数法)
变为:
k(1,1) = 3.746549586E4
k(2,1) = 2.378669357676E-2
[em9]

回复列表 (共3个回复)

沙发

k(1,1) = 37465.49586
k(2,1) = 2.378669357676E-2
对于双精度数这样的赋值方式是有问题的,因为编译器会把这些常数作为单精度数处理后再赋值给相应的变量。这在以前的很多帖子都讲过。应该像下面这样赋值:
k(1,1) = 37465.49586D0
k(2,1) = 2.378669357676D-2

科学计算法只对输出有用,在程序里无所谓。

实际上,如果要控制精度,最好用fortran提供的内部函数的方法,而不用传统的单双精度表示。

板凳

如楼上说的. 单精度双精度数据的储存方法是固定的. 至于输出来看到的只是处理过的数据, 跟里面运算没有关系的.

3 楼

已解决,谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册