[英]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.