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

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Signal Processing Toolbox에 대해 자세히 알아보기

질문:

2016년 11월 15일

댓글:

2016년 11월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by