Удалось пока выяснить что при передаче числа 0,999 в строку попадает 0,099, если добавить еще одну "9" 0,9999 в строку попадает 0,0099, сравнил два файла strnum, прикрепленный выше и скачанный раннее, было пару отличий но это никак не повлияло на результат, еще заменил в функции double на float, я так понимаю в esp он не поддерживается да и я работаю с float? но и это не дало результата, удалось добиться нормального отображения удалив в коде прибавления 0.5:
теперь не работает округление, но вывод без искажений, в чем причина пока не пойму.
Код:
int n = ((int)(fract*10.0+0.0))/10;