3

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

a = 1.154648126486416;

成为:

a = 1.154;

并不是:

a = 1.15000000000;

我如何在不使用format('bank').

4

3 回答 3

7

你可以这样做:

a = floor(a*1000)/1000;
于 2010-06-07T14:39:25.637 回答
2

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

str=sprintf('The result is %1.3f.',a);
disp(str)

将显示“结果为 1.154”。在命令提示符中。或将字符串写入文件等。

于 2010-06-07T14:49:21.497 回答
0
a = 1.154648126486416;
% desired precision 
b = -3;
% your answer
ans = floor(a*10^(-b))/(10^(-b));

答案是 1.1540

如果您不关心其余数字,这很好,但如果您确实关心,那么您只需将“地板”更改为“圆形”。

ans = round(a*10^(-b))/(10^(-b));

答案是 1.1550

于 2015-02-04T02:12:56.853 回答