MATLAB Answers

sprintf with leading minus sign

8 views (last 30 days)
Sam
Sam on 27 Apr 2015
Edited: Stephen Cobeldick on 5 Aug 2016
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

  0 Comments

Sign in to comment.

Answers (3)

Udit Gupta
Udit Gupta on 27 Apr 2015
use
sprintf('%6.2f',abs(x))

  0 Comments

Sign in to comment.


pfb
pfb on 27 Apr 2015
Not sure you can eliminate the minus sign. I think what you are saying is basically
if(abs(x)<1e-2)
x =0;
end

  0 Comments

Sign in to comment.


Christian D
Christian D on 5 Aug 2016
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

Stephen Cobeldick
Stephen Cobeldick 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.

Community Treasure Hunt

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

Start Hunting!