我一直在嘗試使用Fortran的我的研究項目,與GNU Fortran編譯(gfortran),最新版本, 但我已經遇到的方式存在一些問題,它處理實際數字。如果你有一個例子代碼:精度問題的Fortran
program test
implicit none
real :: y = 23.234, z
z = y * 100000
write(*,*) y, z
end program
你會得到作爲輸出:
23.23999 2323400.0
我覺得這很奇怪。 有人能告訴我這裏到底發生了什麼嗎?看着z我可以看到y確實保留了它的精確度,所以對於我認爲不應該成爲問題的計算來說。但爲什麼y的輸出與我指定的值不完全相同,我該怎麼做才能使它完全一樣?
您正在使用單精度IEEE-754浮點數 - 閱讀此:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – 2012-04-04 17:36:54