MATLAB: Format short – how does it work

formatshort

format short;
A = 12.3456789
B = 1234.56789
Output is:
A = 12.3457
B = 1.2346e+03
Why is output A not "1.2345e+01"? What does format "short" do?

Best Answer

Per the "Algorithms" notes in the doc, "If the largest element of a matrix is larger than 103 or smaller than 10-3, then MATLAB applies a common scale factor for the short and long format."
I hadn't really tested before, I thought it was a %g format but it doesn't actually follow those rules which count the number of significant digits to be shown. It's internal as above says purely only magnitude of exponent >3