Borrar filtros
Borrar filtros

Round to specified decimal number?

13 visualizaciones (últimos 30 días)
Keith Lewis
Keith Lewis el 15 de Nov. de 2016
Comentada: Keith Lewis el 15 de Nov. de 2016
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 comentario
Keith Lewis
Keith Lewis el 15 de Nov. de 2016
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

Iniciar sesión para comentar.

Respuesta aceptada

Daniel kiracofe
Daniel kiracofe el 15 de Nov. de 2016

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by