Program Test
Real A,B,C,D
A=16777215
B=1
C=2
D=3
Write(*,*) A,B,C,D
Write(*,*) A+B,A+C,A+D
A=16777216
B=1
C=2
D=3
Write(*,*) A,B,C,D
Write(*,*) A+B,A+C,A+D
End Program Test
Program Test
Real A,B,C,D,E
A=1.000000
B=1.000001
C=1.0000014
D=1.0000015
E=1.0000001
Write(*,*) A,B,C,D,E
End Program Test
楚香饭 发表于 2022-11-21 12:55
6-7位。
因为计算机使用的时二进制,而不是十进制。
一般计算机用整型来表达整数,用定点数和浮点数来表达 ...
Transpose 发表于 2022-11-21 14:03
再仔细研究一下ieee754你就发现是合理的,这个数是2**24
同理,双精度也会有这个限制,是2**53。
因为单精 ...
楚香饭 发表于 2022-11-21 14:21
了解一下大数吃小数的问题。
用十进制来距离,你会容易理解一些,理解之后自己想到二进制上就行了。
Program Test
Real A,B,C,D,E
A=16777217
B=16777219
C=16777221
D=16777227
E=16777229
Write(*,"(F10.1)") A,B,C,D,E
End Program Test
楚香饭 发表于 2022-11-21 17:50
你描述的基本对。但是你想复杂了。
都算不上泰勒级数,它就是个等比数列的线性组合。只不过十进制公比是10 ...
SongAngel 发表于 2022-11-21 21:50
是的,就是等比数列的线性组合,不过十进制和二进制的公比应该分别是0.1和0.5吧。 ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |