poster
2019-12-10, 20:48
在Matlab中,如何控制在命令窗口中显示的小数位数?
例如,
>> x = 0.4654
x =
0.4654 如何在命令窗口中分别将变量x的值显示为0.5、0.47、0.465?
谢谢!
回答:
我认为不存在对任意位置进行舍入的内置功能,但是您可以通过对round(x * 10 ^ 位数 )/ 10 ^ 位数进行舍入来获得舍入结果。这会打印出带有尾随的零,如果您想摆脱那些零,则必须进行某种特殊格式的打印,例如sprintf,这样您就可以通过执行以下操作获得所需的结果:
sprintf('%.1f', round(x*10)/10) sprintf('%.2f', round(x*100)/100) sprintf('%.3f', round(x*1000)/1000) 希望对您有所帮助!
编辑:如果要对矩阵执行此操作,我不确定是否有更好的方法,但是您可以循环遍历以x为矩阵的行:
for i=1:length(x(:,1)), disp(sprintf('%.2f\t', round(x(i,:)*100)/100)) end
更多&回答... (https://stackoverflow.com/questions/4211371)
例如,
>> x = 0.4654
x =
0.4654 如何在命令窗口中分别将变量x的值显示为0.5、0.47、0.465?
谢谢!
回答:
我认为不存在对任意位置进行舍入的内置功能,但是您可以通过对round(x * 10 ^ 位数 )/ 10 ^ 位数进行舍入来获得舍入结果。这会打印出带有尾随的零,如果您想摆脱那些零,则必须进行某种特殊格式的打印,例如sprintf,这样您就可以通过执行以下操作获得所需的结果:
sprintf('%.1f', round(x*10)/10) sprintf('%.2f', round(x*100)/100) sprintf('%.3f', round(x*1000)/1000) 希望对您有所帮助!
编辑:如果要对矩阵执行此操作,我不确定是否有更好的方法,但是您可以循环遍历以x为矩阵的行:
for i=1:length(x(:,1)), disp(sprintf('%.2f\t', round(x(i,:)*100)/100)) end
更多&回答... (https://stackoverflow.com/questions/4211371)