MATLAB Answers

How to get Matlab to return answers with ten-digit accuracy?

3 views (last 30 days)
Noob on 17 Sep 2020
Commented: Noob on 18 Sep 2020
Answers returned by Matlab (e.g. from the ode45 solver, or from the wrapTo2Pi function that maps accumulating angles to [0, 2pi] ) seem to be within four digits of accuracy; that is, it rounds to four digits after the decimal place.
I'm currently studying convergence and root-finding and would like ten-digit accuracy -- so, a bit beyond the standard function tolerance of 1e-6 or 1e-7.
How can I get Matlab answers with ten-digit accuracy?


Sign in to comment.

Answers (2)

Mario Malic
Mario Malic on 17 Sep 2020
Edited: Mario Malic on 17 Sep 2020
Write this on start of your script
format long
If you're reading the values from the workspace, find tab 'View' and under 'Format', click 'Long Fixed Decimal'.
Edit: this only changes displayed output, see James' answer.


Show 7 older comments
Walter Roberson
Walter Roberson on 17 Sep 2020
format long g comes close to giving complete precision, but in some cases you may need two more digits beyond what that format gives you. It is safest to fprintf() your values with %.17g
Noob on 18 Sep 2020
Hi James,
Ok, will do - and thanks so much for your help.

Sign in to comment.

William on 17 Sep 2020
The answers returned by Matlab actually have the full available precision, but for display purposes they are printed in the command window with a much smaller precision. You can change this default behavior by typing 'format long' or 'format longEng' in the command window.




Community Treasure Hunt

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

Start Hunting!