8
我試圖找出如何將浮動轉換爲字符串/二進制,但好像它並不容易,因爲它看起來藥劑 - 轉換浮點數到字符串
iex(1)> to_string(1200.00)
"1.2e3"
iex(2)> Float.to_string(1200.00)
"1.2e3"
我們需要「1200.00」出來......只是沒有在指數符號
我試圖找出如何將浮動轉換爲字符串/二進制,但好像它並不容易,因爲它看起來藥劑 - 轉換浮點數到字符串
iex(1)> to_string(1200.00)
"1.2e3"
iex(2)> Float.to_string(1200.00)
"1.2e3"
我們需要「1200.00」出來......只是沒有在指數符號
沒有你的用例的進一步細節,這會給你你想要的結果:
iex(1)> Float.to_string(1200.00, decimals: 2)
"1200.00"
它使用Erlang的float_to_binary/2
並將於deprec (https://github.com/elixir-lang/elixir/blob/v1.3.2/lib/elixir/lib/float.ex#L225):
def to_string(float, options) do
:erlang.float_to_binary(float, expand_compact(options))
end
這是記錄在任何地方嗎?我看到的只是[Float.to_string/1](http://elixir-lang.org/docs/stable/elixir/Float.html#to_string/1)。 –
這有點隱藏,很快就會被棄用:https://github.com/elixir-lang/elixir/blob/v1.3.2/lib/elixir/lib/float.ex#L225 可能是由於擔心精確的繼承在浮動。根據用例,這個庫可能與https://github.com/ericmj/decimal相關 – splatte
@splatte在那種情況下,我會說你可能想要編輯你的答案以包含當前調用的Erlang函數,因爲這是它將來需要調用:':erlang.float_to_binary(1200.00,decimals:2)'。 –