2014-10-20 75 views
3

我需要高精度的項目,我正在努力。 從其減去當我的問題在這裏說明:MATLAB的精度,減少

>> 1-0.9999999999999999 

ans = 1.1102e-16 

>> 1-0.99999999999999999 

ans = 0 

我知道這是涉及到雙精度。無論如何,我可以得到更高的精度? 我檢查了「vpa」功能,但我無法設法獲得更高的精度。 有人可以幫助我嗎?

預先感謝您!

+0

你有沒有安裝Matlab的符號數學工具箱? – 2014-10-20 16:03:27

+5

嘗試'vpa('1-0.9999999999999999')'(注意引號)。 'vpa(1-0.9999999999999999)'不起作用,因爲'0.999999999999999999'首先轉換爲'double' – 2014-10-20 16:06:06

+0

備註:'vpa'需要符號數學工具箱,高性能標記最終不可避免地指向它。 Luis也很好! – rayryeng 2014-10-20 16:18:42

回答

0

Matlab內部使用雙精度64位系統來解決精度問題。確實存在對matlab的擴展,允許您使用任意精度算術。例如參見 this question