簡體   English   中英

Fortran與Matlab的精度

[英]Precision of Fortran vs that of Matlab

在Fortran中,我輸出tanh(1)的結果,並得到值0.7615941763

open(unit=2, file='test_digits.txt', ACTION="write")
write(2, '(1000F14.10)')( real(tanh(1.0)))

但是,我現在嘗試在MatLAB中執行相同的操作,輸出為0.761594155955765 第8位數字有所不同。

這種精度差異的原因是什么? 我可以以某種方式解決它嗎?

Matlab默認使用雙精度浮點數,而您使用的是單精度浮點數! 它們限制為7-8位數字。如果還使用雙精度,則將獲得相同的精度:

program test
  write(*,*) 'single precision:', tanh(1.0)
  write(*,*) 'double precision:', tanh(1.0d0)
end program

輸出:

 single precision:  0.761594176    
 double precision:  0.76159415595576485  

暫無
暫無

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

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