diff --git a/include/io_frontend.c b/include/io_frontend.c
index 3cd2b9be6fe2f6126dc27bee97dc43702f25275e..8984b3ce36245cee8b622491cf7b4b8b9c6ba4e3 100644
--- a/include/io_frontend.c
+++ b/include/io_frontend.c
@@ -67,6 +67,7 @@ void _put_bool(FILE* file, char* n, _Bool _V){
   printf("'%i' ", (_V)? 1 : 0);
   printf("\n");
   fprintf(file, "%i\n", _V);
+  fflush(file);
 }
 void _put_int(FILE* file, char* n, int _V){
   if(ISATTY) {
@@ -77,14 +78,29 @@ void _put_int(FILE* file, char* n, int _V){
   printf("'%d' ", _V);
   printf("\n");
   fprintf(file, "%d\n", _V);
+  fflush(file);
 }
-void _put_double(FILE* file, char* n, double _V){
+
+void _put_float(FILE* file, char* n, float _V, int PREC){
+  if(ISATTY) {
+    printf("%s = ", n);
+  } else {
+    printf("'%s': ", n);
+  };
+  printf("'%.*f' ", PREC, _V);
+  printf("\n");
+  fprintf(file, "%.*f\n", PREC, _V);
+  fflush(file);
+}
+
+void _put_double(FILE* file, char* n, double _V, int PREC){
   if(ISATTY) {
     printf("%s = ", n);
   } else {
     printf("'%s': ", n);
   };
-  printf("'%f' ", _V);
+  printf("'%.*f' ", PREC, _V);
   printf("\n");
-  fprintf(file, "%f\n", _V);
+  fprintf(file, "%.*f\n", PREC, _V);
+  fflush(file);
 }