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

Python 需要两个小数之间的匹配数字,python,decimal,matching,digits,Python,Decimal,Matching,Digits,假设我有2个小数(浮点) 现在我想把结果和这个小数点的匹配位数进行比较。所以这里的结果应该是 123.62 如果, 那么,结果应该是 结果=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(

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

现在我想把结果和这个小数点的匹配位数进行比较。所以这里的结果应该是

123.62

如果,

那么,结果应该是

结果=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
输出:

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)中做,数学是你的朋友。:-)

这将产生:

123.62
230.0
100.0

如果第一个数字不匹配,但后面的数字匹配怎么办?例如a=2234.2387 b=1232.2138,这里第一个数字不匹配,但后面的几个匹配。在这种情况下。早些时候有可能根本没有对手,这可能会导致错误。你解决了它并编辑了它。干得好!它为数字a=2123.62903 b=1123.6233打印2000.0。捕捉良好。通过将
int
替换为
math.ceil
修复了此问题。很好。但我认为仍然存在一个错误。对于a=1123.62903 b=2123.6233,它会引发错误值error:math domain error我想您必须在a=123.62903和b=112.xx预期结果=1之间保持a最大。但是这一个给出了120A=112.6和b=212.6的输出应该是什么?没有比赛还是12.6?
123.62
230.0
100.0