edit - исключительно с использованием десятичной дроби - с полным примером
import decimal
def simplify(text):
# might be a : separated value
text = text.split(':')[-1]
# turn into decimal
number = decimal.Decimal(text)
# remove everything but the ones place and forwards
number = number - (number/10).quantize(1, rounding=decimal.ROUND_FLOOR) * 10
# truncate to the thousandths
return number.quantize(decimal.Decimal('.001'), rounding=decimal.ROUND_FLOOR)
a = '121082008.3399'
b = '21:53:28.339'
assert simplify(a) == simplify(b)
print simplify(a), '=', simplify(b)
Скотт, если вы сравниваете числа с использованием строк, вам не нужны числа с плавающей запятой и не будет происходить округление.
'8.339' == '8.339'
или, если у вас есть
a = '8.3399'
b = '8.339'
, тогда
a[:-1] == b
однако, если вы решите работать с ними как «числами», то какИгнасио указал, что вы можете использовать десятичные дроби.
from decimal import Decimal
number_a = Decimal(a[:-1])
number_b = Decimal(b)
сейчас
number_a == number_b
Надеюсь, что поможет