请告诉我为什么函数在不同版本上给出不同的结果。
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
e4eetjau1#
我猜是this change,它是Erlang/OTP 20.3的一部分,在Erts 9.3中发布:修复了float_to_list/2和float_to_binary/2中的错误,该错误导致小数部分的浮点数的6%的最后一个十进制数字向上舍入错误。例如,float_to_list(0.145, [{decimals,1}])返回“0.2”,而不是“0.1”。拥有者ID:OTP-14890
float_to_list/2
float_to_binary/2
float_to_list(0.145, [{decimals,1}])
1条答案
按热度按时间e4eetjau1#
我猜是this change,它是Erlang/OTP 20.3的一部分,在Erts 9.3中发布:
修复了
float_to_list/2
和float_to_binary/2
中的错误,该错误导致小数部分的浮点数的6%的最后一个十进制数字向上舍入错误。例如,
float_to_list(0.145, [{decimals,1}])
返回“0.2”,而不是“0.1”。拥有者ID:OTP-14890