ho a che fare con le valute e voglio arrotondare il numero a 2 cifre decimali. Anche se il numero è 500.0, vorrei che fosse 500.00 per essere coerente. Quando faccio "500.00" .to_d lo converte in 500.0.to_d per tornare sempre 2 decimali posti in rubino
Che cosa è un buon modo di cambiare questo comportamento? Uso questo metodo anche per arrotondare a 2 cifre e verificare che contenga sempre 2 decimali.
def self.round_down(x, n=2)
s = x.to_s
l = s.index('.') ? s.index('.') + 1 + n : s.length
s = s[0, l]
s = s.index('.') ? s.length - (s.index('.') + 1) == 1 ? s << '0' : s : s << '.00'
s.to_f
end
Come dice il proverbio, Vero Programmatore puoi scrivere C in * qualsiasi * lingua! ''% .2f'% 500' è l'idioma di Ruby. –
@CamilleGoudeseune Do la colpa a troppi anni di Java:/ – mcfinnigan
sprintf è più esplicito di% e posso facilmente ottenere aiuto sulla formattazione dei parametri premendo F1 su sprintf nel mio IDE –