我认为这是一个简单的问题。我想要:
a = 1.154648126486416;
变成:
a = 1.154;
而不是:
a = 1.15000000000;
我该如何做到不使用
format('bank')
来实现呢?我认为这是一个简单的问题。我想要:
a = 1.154648126486416;
变成:
a = 1.154;
而不是:
a = 1.15000000000;
format('bank')
来实现呢?a = floor(a*1000)/1000;
在@gnovice的回答基础上,您可以将输出格式化为字符串以去除多余的零。有关所有格式选项,请参阅sprintf
文档。
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”即可。
ans = round(a*10^(-b))/(10^(-b));
答案是1.1550