请告诉我为什么函数在不同版本上给出不同的结果。
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
我的猜测是这个变化,在Erts9.3中发布,作为Erlang/OTP 20.3:的一部分
修复了
float_to_list/2
和float_to_binary/2
中使用选项小数的错误,该错误导致最后一个小数位数错误地四舍五入约6%的带有小数部分的浮点值。例如,
float_to_list(0.145, [{decimals,1}])
返回";0.2〃;而不是";0.1〃;。自有Id:OTP-14890