我希望收到一个数字的字符串表示,点后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
任何人都知道为什么?
答案 0 :(得分:2)
来自num2str()
的文档:
s = num2str(A,precision)返回一个字符数组,表示具有由precision指定的最大有效位数的数字。
换句话说,第二个参数控制有效数字的总数,而不是小数位数。
如果要舍入到两位小数,请使用round()
函数。您可以在致电num2str()
之前尝试舍入数字:
num2str(round(1.511,2))
答案 1 :(得分:2)
'precision'
的{{1}}标量输入是significant digits的数量。如果你想在小数点后面有2个数字,请使用num2str
字符串参数:
'formatSpec'