需要两位小数之间的匹配数字

Need matching digits between two decimals

假设我有两位小数(浮点数)。

a = 123.62903
b = 123.6233

现在我希望结果与这个小数点的数字相匹配。所以这里的结果应该是

123.62.

如果,

a =234.2387
b =232.2138

那么,结果应该是

result = 23.

这将是一个很大的帮助谢谢。

使用 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

如果你想在 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