Если не затруднит, приведите нагенерённый асм. код для syslog(LOG_INFO,"2.2 - Write access_bonus for user %s = %f",t_data[a].login, t_data[a].access_bonus);
fprintf(stream, "%.2f", 0);
syslog(LOG_INFO,"3.2 - Write access_bonus for user %s = %f",t_data[a].login, t_data[a].access_bonus);
и файл который получился после записи.
Просто есть подозрение, что надо было правильно привести типы :
fprintf(stream, "%.2f", (float)0.0);
например строчка printf("%.2g",0) совершенно точно выдаёт мусор.
p.s. если используете printf/scanf функции то компилятору желательно дать флажок
-Wformat чтобы он ругался при явном несоответсвии форматной строки и аргументов