diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py index f591b49e7a462383051b728ed83384858c7c38cc..86e2383c33765764b0319eff8e5eb263bf1a3984 100644 --- a/pystencils/backends/cbackend.py +++ b/pystencils/backends/cbackend.py @@ -453,7 +453,11 @@ class CustomSympyPrinter(CCodePrinter): def _print_Rational(self, expr): """Evaluate all rationals i.e. print 0.25 instead of 1.0/4.0""" res = str(expr.evalf(17)) - return res.rstrip('0') + if "." in res: + res = res.rstrip('0') + if res[-1] == ".": + res += '0' + return res def _print_Equality(self, expr): """Equality operator is not printable in default printer""" @@ -525,7 +529,10 @@ class CustomSympyPrinter(CCodePrinter): def _typed_number(self, number, dtype): res = self._print(number) - res = res.rstrip('0') + if "." in res: + res = res.rstrip('0') + if res[-1] == ".": + res += '0' if dtype.numpy_dtype == np.float32: return res + '.0f' if '.' not in res else res + 'f' elif dtype.numpy_dtype == np.float64: