2014-10-20 49 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