А как же:
a = 1.234
b = a - int(a)
length = len(str(a))
round(b, length-2)
Выход:
print(b)
0.23399999999999999
round(b, length-2)
0.234
Поскольку раунд отправляется на длину строки десятичных дробей («0,234»), мы можем просто минус 2, чтобы не считать «0», и вычислить желаемое количество десятичных знаков. Это должно работать в большинстве случаев, если у вас нет много десятичных разрядов и ошибка округления при вычислении b мешает второму параметру раунда.