Если вы хотите сделать это в O (1), математика ваш друг. : -)
import math
def common(a, b):
def trunc(x, precision):
return math.floor(x / precision) * precision
precision = math.pow(10, math.ceil(math.log10(math.fabs(a - b))))
common = trunc(a, precision)
if common == trunc(b, precision):
return common
else:
return trunc(a, precision * 10)
print(common(123.62903, 123.6233))
print(common(234.2387, 232.2138))
print(common(123.62903, 112.21))
Это выводит:
123.62
230.0
100.0