io: format выдает исключение badarg, если формат ~ f, но аргумент целочисленный:
io:format("~f", [2]).
Добавление 0.0 позволяет элегантно решить проблему с шиной?
io:format("~f", [2+0.0]).
Если вам не важен точный вывод, вы можете использовать:
io:format("~p", [Term]).
Это будет работать с любым термином, но не даст вам те же опции форматирования, что и ~ f.
Либо
io:format("~f", [2.0]).
или
io:format("~f", [float(2)]).
работает.