如何显示一定数量的小数位数

Posted

技术标签:

【中文标题】如何显示一定数量的小数位数【英文标题】:how to show certain number of decimal digits 【发布时间】:2010-11-18 03:18:10 【问题描述】:

在Matlab中,如何控制命令窗口显示的小数位数?

例如,

>> x=0.4654

x =

0.4654

如何在命令窗口中将变量x的值分别显示为0.5、0.47、0.465?

谢谢!

【问题讨论】:

Is it possible in matlab to explicitly format the output numbers ?的可能重复 正如 mtwr 所说,您的问题可能在上面的帖子中得到了回答。使用 num2str. 【参考方案1】:

我认为没有内置到任意位置的四舍五入,但您可以通过 round(x*10^number of places)/10^number 来实现四舍五入的结果的地方。这会打印出尾随零,如果你想摆脱那些你必须做一个特殊格式的打印,比如 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

【讨论】:

谢谢!有用!但我想知道如果 x 是一个矩阵怎么办。您回复的方式将在一行中显示所有行,但是我希望在不同的行中显示不同的行,就像在命令窗口中显示矩阵一样。 嘿蒂姆,我不知道如何正确地做到这一点,但你可以通过遍历行来显示它,我编辑了我的答案以包含它。【参考方案2】:

您可以使用format 命令控制命令窗口。我建议你看看doc format,它为你提供了具体的选择。

如果您需要更高的精度,最好使用disp 和/或舍入函数,例如:z = round(x/y)*y

【讨论】:

【参考方案3】:

更改格式。

format shortG

【讨论】:

以上是关于如何显示一定数量的小数位数的主要内容,如果未能解决你的问题,请参考以下文章

无论小数点后的位数如何,如何快速显示 2 位小数?

c语言如何控制小数位数?

java编程中怎么控制小数点后的位数?

具有任意小数位数的 JFormattedTextfield

lua 实现策划需要保留的小数位数

通过在Scala中传递小数位数作为参数来格式化数字