Нет ограничений на int
. Вы можете получить ограничения для числа с плавающей запятой из системного вызова.
>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Python использует двоичные числа с плавающей запятой, и вы теряете некоторую точность преобразования между десятичным и десятичным числами. Вы также теряете точность при работе с дробями, вычисляемыми с помощью чисел с плавающей запятой. decimal
использует математику с основанием 10, уменьшая проблему преобразования за счет более медленной работы. Fractions пытается сохранить вещи как дроби, чтобы избежать такого уровня оценки.