Difference between %d and %f?

조회 수: 650 (최근 30일)
xxtan1
xxtan1 2020년 8월 3일
답변: Steven Lord 2024년 7월 7일
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?

채택된 답변

Adam Danz
Adam Danz 2020년 8월 3일
편집: Adam Danz 2020년 8월 4일
Refer to the documentation.
%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'
  댓글 수: 1
JUNAID
JUNAID 2024년 7월 7일
I didn't understand.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Steven Lord
Steven Lord 2024년 7월 7일
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)
This uses the %d format specifier: 42
fprintf("This uses the %%f format specifier: %f\n", 42)
This uses the %f format specifier: 42.000000
fprintf("This uses the %%d format specifier: %d\n", pi)
This uses the %d format specifier: 3.141593e+00
fprintf("This uses the %%f format specifier: %f\n", pi)
This uses the %f format specifier: 3.141593

카테고리

Help CenterFile Exchange에서 Entering Commands에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by