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



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

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/2float_to_binary/2中使用选项小数的错误,该错误导致最后一个小数位数错误地四舍五入约6%的带有小数部分的浮点值。

例如,float_to_list(0.145, [{decimals,1}])返回";0.2〃;而不是";0.1〃;。

自有Id:OTP-14890

最新更新