Round to specified decimal number?

12 次查看(过去 30 天)
How can I round a number to the nearest specified decimal value?
For instance round 3.7234234 to the nearest 0.25 multiple, so it would output 3.75.
  1 个评论
Keith Lewis
Keith Lewis 2016-11-15
Here is a solution based on Daniels link. Just added a test for whether to round up or down based on which is closer.
prompt={'Decimal to be rounded:','Decimal interval to round to'};
defaultans={'2.149','0.05'};
num_lines=1;
answer=inputdlg(prompt,dlg_title,num_lines,defaultans);
deimcalToRound=str2double(answer{1});
roundingInterval=str2double(answer{2});
up = roundingInterval*ceil(deimcalToRound/roundingInterval);
down = roundingInterval*floor(deimcalToRound/roundingInterval);
subup = deimcalToRound - up
subdown = deimcalToRound - down
asubup = abs(subup)
asubdown = abs(subdown)
if asubdown < asubup
roundingInterval*floor(deimcalToRound/roundingInterval)
else
roundingInterval*ceil(deimcalToRound/roundingInterval)
end

请先登录,再进行评论。

采纳的回答

Daniel kiracofe
Daniel kiracofe 2016-11-15

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by