Warum kann ich String.replace nicht verketten?
Ich arbeite an einer Preisformatfunktion, die einen Gleitkommawert annimmt und ihn richtig darstellt.
Ex. 190,5, sollte 190,50 @ se
Das ist was ich mir ausgedacht habe
def format_price(price) do
price
|> to_string
|> String.replace ".", ","
|> String.replace ~r/,(\d)$/, ",\\1 0"
|> String.replace " ", ""
end
Wenn ich das folgende laufen lasse.
format_price(299.0)
# -> 299,0
Es sieht so aus, als hätte es nur den ersten Austausch durchlaufen. Nun, wenn ich dies wie folgt ändere.
def format_price(price) do
formatted = price
|> to_string
|> String.replace ".", ","
formatted = formatted
|> String.replace ~r/,(\d)$/, ",\\1 0"
formatted = formatted
|> String.replace " ", ""
end
Dann scheint alles gut zu funktionieren.
format_price(299.0)
# -> 299,00
Warum ist das