removing trailing zeros at the end of floating number
73 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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
0 comentarios
Respuestas (2)
DGM
el 21 de Abr. de 2021
Editada: DGM
el 21 de Abr. de 2021
Assuming this is for display purposes, try something like
fprintf('%6.3f\n',3.2653246546516)
gives
3.265
3 comentarios
James Tursa
el 21 de Abr. de 2021
Editada: James Tursa
el 21 de Abr. de 2021
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.
Adam Danz
el 21 de Abr. de 2021
format long
x = -3.265000000000;
str = sprintf('%g\n',x)
x = -3.2650000000001;
str = sprintf('%g\n',x)
0 comentarios
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!