Sto lavorando su una funzione di formattazione del prezzo, che prende un float e lo rappresenta correttamente.Perché non riesco a Chain String.replace?
ex. 190.5, dovrebbe essere 190,50
Questo è ciò che si avvicinò con
def format_price(price) do
price
|> to_string
|> String.replace ".", ","
|> String.replace ~r/,(\d)$/, ",\\1 0"
|> String.replace " ", ""
end
se corro quanto segue.
format_price(299.0)
# -> 299,0
sembra che correva solo attraverso la prima sostituzione. Ora se cambio questo al seguente.
def format_price(price) do
formatted = price
|> to_string
|> String.replace ".", ","
formatted = formatted
|> String.replace ~r/,(\d)$/, ",\\1 0"
formatted = formatted
|> String.replace " ", ""
end
Quindi tutto sembra funzionare bene.
format_price(299.0)
# -> 299,00
Perché è questo?
In generale (per coloro che potrebbero leggere più avanti) quando si mettono in discussione gli argomenti tramite le funzioni, assicurarsi di mettere le parentesi attorno agli argomenti. –