【发布时间】:2015-12-13 10:39:48
【问题描述】:
我正在研究一个价格格式函数,它接受一个浮点数,并正确地表示它。
例如。 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
这是为什么?
【问题讨论】:
-
一般来说(对于那些稍后可能会阅读此内容的人),当您通过函数传递参数时,请确保在参数周围加上括号。
标签: elixir