a = 123.62903
b = 123.6233
现在我希望结果与该十进制数字匹配。所以结果应该是
123.62。
如果
a =234.2387
b =232.2138
然后,结果应为
结果= 23。
谢谢,这将是很大的帮助。
答案 0 :(得分:1)
使用zip
和一个简单的迭代。
演示:
a = 123.62903
b = 123.62333
res = ''
for i, v in zip(str(a), str(b)):
if i != v:
break
else:
res += v
if res:
print(float(res) if "." in res else int(res))
输出:
123.62
答案 1 :(得分:0)
如果要在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