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 个)

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 个评论

"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.

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Workspace Variables and MAT Files 的更多信息

提问:

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