diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py
index f8b7e6d8a2d2216df4dc627843b1a16140dbb31d..2e273745943e2905d4f0ee355be35bf9a1772f3b 100644
--- a/pystencils/backends/cbackend.py
+++ b/pystencils/backends/cbackend.py
@@ -1,6 +1,7 @@
 from collections import namedtuple
 from typing import Set
 
+import numpy as np
 import sympy as sp
 from sympy.core import S
 from sympy.printing.ccode import C89CodePrinter
@@ -360,13 +361,10 @@ class CustomSympyPrinter(CCodePrinter):
 
     def _typed_number(self, number, dtype):
         res = self._print(number)
-        if dtype.is_float():
-            if dtype == self._float_type:
-                if '.' not in res:
-                    res += ".0f"
-                else:
-                    res += "f"
-            return res
+        if dtype.numpy_dtype == np.float32:
+            return res + '.0f' if '.' not in res else res + 'f'
+        elif dtype.numpy_dtype == np.float64:
+            return res + '.0' if '.' not in res else res
         else:
             return res