没有科学记数法的浮点到字符串?

Fil*_*und 2 erlang elixir

有没有一种好方法可以在 Erlang/Elixir 中将浮点数转换为字符串,无需科学记数法,也无需指定我想要多少个十进制数字?

这些都不符合我的需要。

:erlang.float_to_binary(decimals: 10): 给出尾随零小数
float_to_binary(100000000000.0, [short]).: 打印科学记数法

Ada*_*hip 6

您可以提供compact修剪尾随零的选项:

iex> :erlang.float_to_binary(100000000000.0, [:compact, decimals: 20])
"100000000000.0"
Run Code Online (Sandbox Code Playgroud)

但请注意,浮点数无法准确地表示为小数,因此您可能会得到意想不到的结果。例如:

iex> :erlang.float_to_binary(0.1 + 0.2, [:compact, decimals: 10])
"0.3"
iex> :erlang.float_to_binary(0.1 + 0.2, [:compact, decimals: 20])
"0.30000000000000004441"
Run Code Online (Sandbox Code Playgroud)