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

时间:2018-07-06 04:50:23

标签: python decimal matching digits

假设我有2个小数(浮点数)。

a = 123.62903
b = 123.6233

现在我希望结果与该十进制数字匹配。所以结果应该是

  

123.62。

如果

a =234.2387
b =232.2138

然后,结果应为

  

结果= 23。

谢谢,这将是很大的帮助。

2 个答案:

答案 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