1
resposta

Duvida de converção de array de floats para um valor monetario em um array de Strings

Olá estou fazendo um exercisio sobre converção de um float em uma string de valor , então gostaria de saber se poderia fazer dessa maneira ou poderia ter algum problema :

class Array

  def para_dinheiro()

    novos_precos =[]
    self.each do |preco|

      novo_preco = preco.to_s.tr(".",",")
      novos_precos << "R$#{novo_preco}0"

    end

    return novos_precos

  end



end


precos = [50.0 , 30.0]
precos_atualizados = precos.para_dinheiro
puts ("\n")
puts ("#{precos_atualizados[0]}")
puts ("\n")
puts ("#{precos_atualizados[1]}")
1 resposta

Eu usaria a mesma abordagem mostrada no curso, mas adicionaria ao array de preço de outra forma. Como no exemplo que segue:

class Float
  def para_dinheiro
    valor = "R$" << self.to_s.tr('.', ',')
    valor << "0" unless valor.match /(.*)(\d{2})$/
    valor
  end
end

precos = [50.0 , 30.0]
precos_atualizados = precos.map { |preco| preco.para_dinheiro }
puts ("\n")
puts ("#{precos_atualizados[0]}")
puts ("\n")
puts ("#{precos_atualizados[1]}")