MATLAB的num2str不一致

时间:2017-05-13 09:30:28

标签: matlab

我希望收到一个数字的字符串表示,点后2点。

我正在使用MATLAB R2015a,并注意到num2str函数返回不一致的结果:

对于0.511我得到了所需的结果(0.51):

num2str(0.511,2)

ans =

0.51

对于1.711我得1.7而不是1.71:

num2str(1.511,2)

ans =

1.5

任何人都知道为什么?

2 个答案:

答案 0 :(得分:2)

来自num2str()的文档:

  

s = num2str(A,precision)返回一个字符数组,表示具有由precision指定的最大有效位数的数字。

换句话说,第二个参数控制有效数字的总数,而不是小数位数。

如果要舍入到两位小数,请使用round()函数。您可以在致电num2str()之前尝试舍入数字:

num2str(round(1.511,2))

答案 1 :(得分:2)

'precision'的{​​{1}}标量输入是significant digits的数量。如果你想在小数点后面有2个数字,请使用num2str字符串参数:

'formatSpec'