2010-06-07 51 views
3

我認爲這是一個簡單的問題。我想:我怎樣才能達到一定的浮點精度?

a = 1.154648126486416; 

成爲:

a = 1.154; 

,而不是:

a = 1.15000000000; 

我怎樣做,如果沒有使用format('bank')

+4

你想圓,截形,或只顯示一定數量的數字? – Doresoom 2010-06-07 14:40:06

回答

7

你可以這樣做:對@ gnovice的回答

a = floor(a*1000)/1000; 
2

大廈,您可以格式化輸出字符串擺脫多餘的零的。有關所有格式選項,請參閱sprintf文檔。

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

將顯示「結果是1.154」。在命令提示符下。或寫入字符串到文件,等等等等

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