小编Max*_*lan的帖子

Erlang float_to_binary奇怪地截断小数

Erlang float_to_binary函数奇怪地截断小数.例如,我希望它转换0.45为没有小数位"0".相反,我们得到(Elixir中的例子):

iex> :erlang.float_to_binary(0.45, [decimals: 0])
"1"
iex> :erlang.float_to_binary(0.445, [decimals: 0])
"1"
> :erlang.float_to_binary(0.444, [decimals: 0])
"0"
Run Code Online (Sandbox Code Playgroud)

因此,似乎从右到左迭代地应用舍入,直到达到所需的小数位数.

这是预期的行为吗?为什么它不正确地圆形或只是截断?对我来说,这两个选项似乎都更容易预测.

erlang elixir

3
推荐指数
1
解决办法
132
查看次数

标签 统计

elixir ×1

erlang ×1