Truncamiento de numeros en Ruby

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: maiku, akodo

Responder
ExpLin_11
Forista Nuevo
Forista Nuevo
Mensajes: 35
Registrado: Dom Nov 13, 2011 10:28 pm

Truncamiento de numeros en Ruby

Mensaje por ExpLin_11 »

Hola a todos.

Les quería consultar como puedo hacer para truncar un numero real terminado en 0. Les paso a explicar, tengo un ejercicio donde debo truncar un numero real a 2 decimales, el problema es que si el decimal termina en 0, en lugar de devolverme el numero completo solo me devuelve el primer numero.

Por ejemplo:

Si tengo: 434234.75987763, me devuelve 434234.75 o sea es correcto.

Ahora si tengo el numero 434234.7000000000000 me devuelve 434234.7, cuando lo que quiero es que me devuelva 2 decimales, osea 434234.70.

Para truncar el numero a 2 decimales estoy usando este código:

Código: Seleccionar todo

(numero*100).to_i  / 100.0
el cual funciona correctamente siempre y cuando el decimal del numero truncado no termine en 0.

Ejemplos:

Código: Seleccionar todo

167575.44444444   ==>> 167575.44
167575.40000000   ==>>   167575.4  ======> Debería devolver 167575.40
786.91111111 ==>> 786.91
786.90000000 ==>> 786.9 ========> Debería devolver 786.90
No se si me explico.
La pregunta seria si hay alguna otra forma, de que si el decimal del numero termina en 0, no me lo trunque al primer numero, y que me devuelva el numero completo.

Gracias.

Avatar de Usuario
johpunk
Forista Ancestral
Forista Ancestral
Mensajes: 4530
Registrado: Mié Ago 09, 2006 7:00 am
Ubicación: Táchira - Venezuela

Re: Truncamiento de numeros en Ruby

Mensaje por johpunk »

eso se puede hacer con round pero como el problema esta con los 0 mira aca eso te puede servir. saludos
Linux User #432922 ~ Linux Machine #390497
Gentoo 13.0 | ~amd64 | i3 improved | Github | dotfiles | Identi.ca | Twitter
irc.freenode.net | /join #gnu/linuxOS

tigrezno
Forista Nuevo
Forista Nuevo
Mensajes: 2
Registrado: Mié Ene 02, 2013 2:00 am

Re: Truncamiento de numeros en Ruby

Mensaje por tigrezno »

Puedes hacerlo asi:

num = 0.542342
( "%.2f" % num ).to_f

el resultado es 0.54

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje