removing trailing zeros at the end of floating number

조회 수: 51 (최근 30일)
Abhijit Sardar
Abhijit Sardar 2021년 4월 21일
답변: Adam Danz 2021년 4월 21일
I m getting the numerical result with trailing zeros even after rounding of to few decimal places for eg.:- 3.265000000000 how do i remove those zeroes and just get the value as 3.265

답변 (2개)

DGM
DGM 2021년 4월 21일
편집: DGM 2021년 4월 21일
Assuming this is for display purposes, try something like
fprintf('%6.3f\n',3.2653246546516)
gives
3.265
  댓글 수: 3
James Tursa
James Tursa 2021년 4월 21일
편집: James Tursa 2021년 4월 21일
The trailing 0's is an artifact of converting the binary floating point bit pattern into a decimal number for display purposes, so this is just a display issue. The number isn't stored in decimal so those decimal 0's you are worried about don't exist in the stored number. The stored number is using IEEE binary floating point format, not any decimal format. What are you doing with these numbers downstream in your code where you think these trailing 0's will cause you a problem?
Also, many decimal numbers can't be represented exactly in binary floating point anyway. So if you were to print out many more digits, there will be non-zero digits after some trailing 0's in the decimal conversion. This is the nature of using binary floating point for calculations.
Abhijit Sardar
Abhijit Sardar 2021년 4월 21일
but when i am copy pasting the data in text file trailing zeroes are still there

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


Adam Danz
Adam Danz 2021년 4월 21일
format long
x = -3.265000000000;
str = sprintf('%g\n',x)
str =
'-3.265 '
x = -3.2650000000001;
str = sprintf('%g\n',x)
str =
'-3.265 '

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by