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 に答える