2012-07-26 16 views
14

¿Cómo puedo usar number_to_currency y hacer que elimine los ceros en la parte decimal?Rieles: Número de moneda, eliminar los ceros finales

Así que si tengo un número 30.50, quiero mantener el .50, pero si tengo 30.00, quiero eliminar esos ceros. Veo la precisión, pero no sé si lo puedo usar de forma condicional a ser aplicado solo si los decimales se arrastran son ceros ...

Gracias

Respuesta

33
num = 30.00 
number_to_currency(num, :precision => (num.round == num) ? 0 : 2) 
    => $30 

num = 30.05 
number_to_currency(num, :precision => (num.round == num) ? 0 : 2) 
    => $30.05 
0

utilizo cadenas de dinero, por lo que hago de otra manera:

def string_to_cents str 
    new_str = number_to_currency(str, :format => "%n") 
    if new_str && new_str[-3..-1] == ".00" 
     new_str[-3..-1] = "" 
    end 
    new_str 
end 
Cuestiones relacionadas