sprintf with leading minus sign

I am trying to use SPRINTF to print the following variable's value. How to print it so it does not without the minus sign
>> %This is NOT what I want
>> x=-0.000001; sprintf('%6.2f',x)
ans =
-0.00
>> %This is what I want
ans =
0.00

Answers (3)

Not sure you can eliminate the minus sign. I think what you are saying is basically
if(abs(x)<1e-2)
x =0;
end
I have the same problem, this minus annoys me.
I think a workaround is using the round or roundn on that numbers.
sprintf('%3.0f',-0.1)
sprintf('%3.0f',round(-0.1))
produces
-0
0
Is there any other solution than that?

1 Comment

Stephen23
Stephen23 on 5 Aug 2016
Edited: Stephen23 on 5 Aug 2016
"a workaround is using the round"
That is not a workaround: round is the way to round numbers. MATLAB supports negative zero because this is required by IEEE 754, which MATLAB uses for floating point values.

Sign in to comment.

Asked:

Sam
on 27 Apr 2015

Edited:

on 5 Aug 2016

Community Treasure Hunt

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

Start Hunting!