Is it overflow?how can I input 2.5e-6?

3 views (last 30 days)
Shaonong Wei
Shaonong Wei on 24 Nov 2020
Edited: John D'Errico on 24 Nov 2020
  1 Comment
John D'Errico
John D'Errico on 24 Nov 2020
Edited: John D'Errico on 24 Nov 2020
Moved answer by @Shaonong Wei into a comment.
If you want to add information to your question, then either edit your question or add a comment on your question.

Sign in to comment.

Answers (1)

Ameer Hamza
Ameer Hamza on 24 Nov 2020
Edited: Ameer Hamza on 24 Nov 2020
This happens because of the way MATLAB parses the expression vpa(2.5e-6). First, MATLAB converts 2.5e-6 into a double datatype, and due to the finite precision of double(), you don't exactly get 2.5e-6. And only after that, MATLAB converts it to symbolic. In the second case, 2.5e-5 can be exactly represented, and thus, the problem does not occur. The workaround is to pass the 2.5e-6 as a char array
vpa('2.5e-6')

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!