Почему я не могу связать String.replace?

Я работаю над функцией форматирования цены, которая принимает плавающее число и правильно его отображает.

ех. 190,5, должно быть 190,50

Это то, что я придумал

  def format_price(price) do
    price
    |> to_string
    |> String.replace ".", ","
    |> String.replace ~r/,(\d)$/, ",\\1 0"
    |> String.replace " ", ""
  end

Если я запускаю следующее.

format_price(299.0)
# -> 299,0

Похоже, он пробежал только через первую замену. Теперь, если я изменю это на следующее.

  def format_price(price) do
    formatted = price
    |> to_string
    |> String.replace ".", ","

    formatted = formatted
    |> String.replace ~r/,(\d)$/, ",\\1 0"

    formatted = formatted
    |> String.replace " ", ""
  end

Тогда все, кажется, работает просто отлично.

format_price(299.0)
# -> 299,00

Почему это?

Ответы на вопрос(1)

Ваш ответ на вопрос