Я думаю, что ваше решение работает лучше, чем большинство предложенных ответов ... Немного изменил его, чтобы охватить и отрицательные числа.
int f=1234;
if (f<0)
result = -1.0f*parseFloat ("0."+(-f));
else
result = parseFloat ("0."+f);
Тем не менее не получается на Integer.MIN_VALUE
, хотя и отметим потерю точности.Например:
int f=2147483647; //gives
result == 0.21474837f