erlang 为什么舍入函数对不同的版本返回不同的结果?

6yjfywim  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(127)

请告诉我为什么函数在不同版本上给出不同的结果。

vsn 19.1
list_to_float(float_to_list(615.4896 / 100, [{decimals, 2}])).
6.16

vsn 24.2
list_to_float(float_to_list(615.4896 / 100, [{decimals, 2}])).

6.15
e4eetjau

e4eetjau1#

我猜是this change,它是Erlang/OTP 20.3的一部分,在Erts 9.3中发布:
修复了float_to_list/2float_to_binary/2中的错误,该错误导致小数部分的浮点数的6%的最后一个十进制数字向上舍入错误。
例如,float_to_list(0.145, [{decimals,1}])返回“0.2”,而不是“0.1”。
拥有者ID:OTP-14890

相关问题