Effacer les filtres
Effacer les filtres

sprintf with leading minus sign

9 vues (au cours des 30 derniers jours)
Sam
Sam le 27 Avr 2015
Modifié(e) : Stephen23 le 5 Août 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

Réponses (3)

Udit Gupta
Udit Gupta le 27 Avr 2015
use
sprintf('%6.2f',abs(x))

pfb
pfb le 27 Avr 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

Christian D
Christian D le 5 Août 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 commentaire
Stephen23
Stephen23 le 5 Août 2016
Modifié(e) : Stephen23 le 5 Août 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.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by