簡體   English   中英

Fortran與Python之間的精確差異(sin函數)

[英]Precision discrepancy between Fortran and Python (sin function)

使用sinus函數時,我發現python和Fortran之間存在差異。 請問有人可以闡明這一點嗎?

在python中:

      import math
      print(math.sin(6.28318530717959))
      >> 3.3077843189710302e-15

在fortran90中:

      print*, sin(6.28318530717959d0)
      >> 3.3077720792452914E-15

編輯:因為這似乎是Fortran編譯器的問題,所以我將g95與

       g95 -O3 test.f90 -o test.exe

根據IEEE 754的浮點表示法:

In [7]: bin(3.3077720792452914e-15.view(np.uint64))
Out[7]: '0b11110011101101110010110011010000000000000000000000000000000000'

顯示尾數被截斷時

In [9]: bin(3.3077843189710302e-15.view(np.uint64))
Out[9]: '0b11110011101101110010110011101100111001100111010111010001111111'

顯示一個普通的。

可能是類型問題,進程中有float32,甚至起源也很神秘。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM