diff --git a/src/strings.c b/src/strings.c
index 55ee69a..3befb86 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -1895,7 +1895,6 @@
     return s;
 }
 
-# ifdef FEAT_FLOAT
 /*
  * Get float argument from "idxp" entry in "tvs".  First entry is 1.
  */
@@ -1919,11 +1918,9 @@
     }
     return f;
 }
-# endif
 
 #endif
 
-#ifdef FEAT_FLOAT
 /*
  * Return the representation of infinity for printf() function:
  * "-inf", "inf", "+inf", " inf", "-INF", "INF", "+INF" or " INF".
@@ -1945,7 +1942,6 @@
 	idx += 4;
     return table[idx];
 }
-#endif
 
 /*
  * This code was included to provide a portable vsnprintf() and snprintf().
@@ -2079,13 +2075,9 @@
 	    char    length_modifier = '\0';
 
 	    // temporary buffer for simple numeric->string conversion
-# if defined(FEAT_FLOAT)
-#  define TMP_LEN 350	// On my system 1e308 is the biggest number possible.
+# define TMP_LEN 350	// On my system 1e308 is the biggest number possible.
 			// That sounds reasonable to use as the maximum
 			// printable.
-# else
-#  define TMP_LEN 66
-# endif
 	    char    tmp[TMP_LEN];
 
 	    // string address in case of string argument
@@ -2637,7 +2629,6 @@
 		    break;
 		}
 
-# ifdef FEAT_FLOAT
 	    case 'f':
 	    case 'F':
 	    case 'e':
@@ -2653,9 +2644,9 @@
 		    int		remove_trailing_zeroes = FALSE;
 
 		    f =
-#  if defined(FEAT_EVAL)
+# if defined(FEAT_EVAL)
 			tvs != NULL ? tv_float(tvs, &arg_idx) :
-#  endif
+# endif
 			    va_arg(ap, double);
 		    abs_f = f < 0 ? -f : f;
 
@@ -2672,11 +2663,11 @@
 		    }
 
 		    if ((fmt_spec == 'f' || fmt_spec == 'F') &&
-#  ifdef VAX
+# ifdef VAX
 			    abs_f > 1.0e38
-#  else
+# else
 			    abs_f > 1.0e307
-#  endif
+# endif
 			    )
 		    {
 			// Avoid a buffer overflow
@@ -2801,7 +2792,6 @@
 		    str_arg = tmp;
 		    break;
 		}
-# endif
 
 	    default:
 		// unrecognized conversion specifier, keep format string
