MATLAB: How to use format spec in fprintf properly

fprintf

Hello,
I have read the help documentation but somtehing doesnt work as expected. say i have a variable
x=3.14
and i want to print to the command window the value of x while allowing 3 digits bedfore the point and 3 after. so i expect to get 003.140 i used
fprintf('%03.3f\n',x)
and got
3.140 as output.
what went wrong ? thanks

Best Answer

The first number is the total field width, INCLUDING the number after the decimal point. It is not the number before, dot, and then the number after. So if you wanted 3 before, a decimal point, and then 3 more, you'd have to do %7.3f.