好吧,這是一個很奇怪的問題。哈斯克爾正弦和餘弦函數不起作用
內置的Haskell正弦函數(sin)似乎不起作用。
sin 0
正確地給出0
。
sin pi
給出,無論出於何種原因,1.2246467991473532e-16
這些是使用內置的前奏功能。我只是啓動ghci(Haskell解釋器),然後輸入sin pi
並得到錯誤的答案。
此外,cos (pi/2)
給6.123233995736766e-17
任何想法,這可能是爲什麼?它看起來像函數中的構建是完全錯誤的......這看起來不太可能看到Haskell標準庫的數學導向。
編輯:嘿,我只是簡單地忽略了電子16 ..我想這就是我在深夜編碼得到的。無論如何每個人都謝謝
也許你應該試試'1 + sin pi',這樣你可以看到它實際上離正確的答案有多近。 – augustss
您也可以安裝數字包,並使用類型'Data.Number.CReal.CReal'而不是'Double'。它速度慢,準確。 – augustss