Difference between %d and %f?
1,310 views (last 30 days)
Show older comments
Hi, I dont quite understand the difference between %d and %f and its usage in certain cases.
Does %d correspond to int in C and %f correspond to float?
What is the case I have to use %d instead of %f?
0 Comments
Accepted Answer
Adam Danz
on 3 Aug 2020
Edited: Adam Danz
on 4 Aug 2020
%d represents signed integers (base 10).
sprintf('John is %d years old', 7)
% 'John is 7 years old'
%f represents floating point numbers.
sprintf('The first 8 dp of pi are %.8f', pi)
% 'The first 8 dp of pi are 3.14159265'
%f can also be used to represent integers by rounding floating point inputs. %d cannot be used in this way.
sprintf('Pi is rounded to %.0f', pi)
% 'Pi is rounded to 3'
sprintf('Pi is rounded to %.d', pi)
% 'Pi is rounded to 3e+00'
More Answers (1)
Steven Lord
on 7 Jul 2024
If you want to print integer values, you probably want to use %d.
If you want to print non-integer values, you probably want to use %f.
While you can use %f to print integer values (as per the second line of code below) if you try to use %d to print non-integer values it will actually switch to a different specifier (%e I believe, as per the note in the Notable Behavior of Conversions with Formatting Operators section of the description of the formatSpec input argument on the fprintf documentation page.)
fprintf("This uses the %%d format specifier: %d\n", 42)
fprintf("This uses the %%f format specifier: %f\n", 42)
fprintf("This uses the %%d format specifier: %d\n", pi)
fprintf("This uses the %%f format specifier: %f\n", pi)
0 Comments
See Also
Categories
Find more on Entering Commands 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!