erlang 不使用科学记数法就浮点到字符串?

byqmnocz  于 2023-08-01  发布在  Erlang
关注(0)|答案(1)|浏览(187)

在Erlang/Elixir中,有没有一种很好的方法将浮点数转换为字符串,而不需要科学符号,也不需要指定我想要多少位小数?
这两个都不符合我的需要。
:erlang.float_to_binary(decimals: 10):给出尾随零小数
float_to_binary(100000000000.0, [short]).:打印科学记数法

nfzehxib

nfzehxib1#

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

iex> :erlang.float_to_binary(100000000000.0, [:compact, decimals: 20])
"100000000000.0"

字符串
但是请注意,浮点数不能准确地表示为小数,因此您可能会得到意想不到的结果。举例来说:

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"

相关问题