我认为这是一个简单的问题。我想要:
a = 1.154648126486416;变成:
a = 1.154;而不是:
a = 1.15000000000;如何在不使用format('bank')的情况下做到这一点。
发布于 2010-06-07 22:39:26
你可以这样做:
a = floor(a*1000)/1000;发布于 2010-06-07 22:49:21
基于@gnovice的答案,您可以将输出格式化为字符串,以去掉多余的零。有关所有格式设置选项的信息,请参阅sprintf文档。
str=sprintf('The result is %1.3f.',a);
disp(str)将显示"The result is 1.154“。在命令提示符下。或者将字符串写入文件,等等。
发布于 2015-02-04 10:12:57
a = 1.154648126486416;
% desired precision
b = -3;
% your answer
ans = floor(a*10^(-b))/(10^(-b));答案是1.1540
如果你不关心其余的数字,这是很好的,但如果你真的关心,那么你只需简单地将"floor“改为"round”。
ans = round(a*10^(-b))/(10^(-b));答案是1.1550
https://stackoverflow.com/questions/2990408
复制相似问题