Matlab 我怎样才能舍入到某个浮点精度?

Matlab 我怎样才能舍入到某个浮点精度?,matlab,floating-point,rounding,number-formatting,Matlab,Floating Point,Rounding,Number Formatting,我认为这是一个简单的问题。我想: a = 1.154648126486416; 成为: a = 1.154; 而不是: a = 1.15000000000; 如果不使用格式('bank')您可以这样做: a = floor(a*1000)/1000; 基于@gnovice的答案,您可以将输出格式化为字符串,以消除多余的零。有关所有格式选项,请参见文档 str=sprintf('The result is %1.3f.',a); disp(str) 将在命令提示中显示“结果为1.154.

我认为这是一个简单的问题。我想:

a = 1.154648126486416;
成为:

a = 1.154;
而不是:

a = 1.15000000000;
如果不使用
格式('bank')

您可以这样做:

a = floor(a*1000)/1000;

基于@gnovice的答案,您可以将输出格式化为字符串,以消除多余的零。有关所有格式选项,请参见文档

str=sprintf('The result is %1.3f.',a);
disp(str)
将在命令提示中显示“结果为1.154.”。或将字符串写入文件等

a = 1.154648126486416;
% desired precision 
b = -3;
% your answer
ans = floor(a*10^(-b))/(10^(-b));
答案是1.1540

如果你不在乎其余的数字,这是很好的,但是如果你在乎的话,你只需要简单地将“floor”改为“round”


答案是1.1550

您是要舍入、截断还是只显示一定数量的数字?
ans = round(a*10^(-b))/(10^(-b));