Saltar al contenido

truncar números decimales en matlab?

El paso a paso o código que hallarás en este post es la solución más rápida y válida que hallamos a esta duda o dilema.

Solución:

Aquí hay un método para truncar d dígitos después del decimal.

val = 1.234567;
d = 4;
val_trunc = fix(val*10^d)/10^d

Resultado

val_trunc =

   1.2345

si sabes eso val es positivo entonces floor() funcionará en lugar de fix().

Otra opción más:

x = -3.141592653;
x_trun = x - rem(x,0.0001)

x_trun =

    -3.1415

Felicitaciones a gnovice por la actualización.

En general, para n lugares decimales:

x_trun = x - rem(x,10^-n)

Truncar es como redondear si restas 5 del decimal posterior al último que desea conservar.

Entonces, para truncar x para n uso de cifras decimales

round(x - sign(x)*.5/10^n, n)

(Gracias a @gnovice por notar la necesidad de sign(x) para tratar con números negativos.)

Por ejemplo,

format long
x = 3.141592653589793;
for n = 2:5
    result = round(x - sign(x)*.5/10^n, n);
    disp(result)
end

da

   3.140000000000000
   3.141000000000000
   3.141500000000000
   3.141590000000000

Valoraciones y reseñas

Si conservas algún disgusto o capacidad de regenerar nuestro enunciado eres capaz de escribir una interpretación y con mucho gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *