MATLAB Answers


vpa doesn't seem to work

Jacob Kelley さんによって質問されました 2019 年 11 月 14 日
最新アクティビティ Walter Roberson
さんによって コメントされました 2019 年 11 月 14 日
So I am trying to figure out how to use vpa(#,d) to do calculations with massive numbers on the magnitude of 1 x 10^(233) and need to know exactly down to the ones place. I have symbolic toolbox (syms x works). I have the student package if that helps.
When I do:
n = vpa(26666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666,300);
I get
Why does it look like it is still having roud off error after 16 digits?

  0 件のコメント

サインイン to comment.

1 件の回答

James Tursa
回答者: James Tursa
2019 年 11 月 14 日
編集済み: James Tursa
2019 年 11 月 14 日

You are passing a double into vpa( ), so your precision is lost before you even call it. You could pass in a string instead:
n = vpa('26666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666',300);
Bottom line is don't do any extended precision stuff in double ... even typing it in will ruin your result.

  3 件のコメント

Jacob Kelley 2019 年 11 月 14 日
Sweet, that makes sense now
Jacob Kelley 2019 年 11 月 14 日
Another question you might know, Why does it attach the .0 to the end? I also can't have it do that with what I am trying to do. example:
s = vpa('35524',50);
Walter Roberson
2019 年 11 月 14 日
(answered in the question you posted about this)

サインイン to comment.

Translated by