diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py index 86e2383c33765764b0319eff8e5eb263bf1a3984..8e1d8445a21ad4d6ed89815bcbbd5dd6b88d335d 100644 --- a/pystencils/backends/cbackend.py +++ b/pystencils/backends/cbackend.py @@ -453,10 +453,8 @@ 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)) - if "." in res: - res = res.rstrip('0') - if res[-1] == ".": - res += '0' + if p := res.find('.'): + res = res[:p + 2] + res[p + 2:].rstrip('0') return res def _print_Equality(self, expr): @@ -529,10 +527,8 @@ class CustomSympyPrinter(CCodePrinter): def _typed_number(self, number, dtype): res = self._print(number) - if "." in res: - res = res.rstrip('0') - if res[-1] == ".": - res += '0' + if p := res.find('.'): + res = res[:p + 2] + res[p + 2:].rstrip('0') if dtype.numpy_dtype == np.float32: return res + '.0f' if '.' not in res else res + 'f' elif dtype.numpy_dtype == np.float64: