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

回答 (3 件)

Udit Gupta
Udit Gupta 2015 年 4 月 27 日

0 投票

use
sprintf('%6.2f',abs(x))
pfb
pfb 2015 年 4 月 27 日

0 投票

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 2016 年 8 月 5 日

0 投票

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 件のコメント

Stephen23
Stephen23 2016 年 8 月 5 日
編集済み: Stephen23 2016 年 8 月 5 日
"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.

サインインしてコメントする。

カテゴリ

質問済み:

Sam
2015 年 4 月 27 日

編集済み:

2016 年 8 月 5 日

Community Treasure Hunt

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

Start Hunting!

Translated by