2010-06-07 4 views
3

Я думаю, что это простой вопрос. Я хочу:Как я могу округлить до определенной точности с плавающей запятой?

a = 1.154648126486416; 

стать:

a = 1.154; 

и нет:

a = 1.15000000000; 

Как я могу это сделать без использования format('bank').

+4

вы пытаетесь округлить, укоротить, или просто отобразить определенное количество цифр? – Doresoom

ответ

2

Опираясь на ответ @ gnovice, вы можете форматировать вывод в виде строки, чтобы избавиться от лишних нулей. См. Документацию 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