Загрузка данных


from fractions import Fraction
from math import ulp
from struct import pack, unpack

a_exact = Fraction(1,10)
b_exact = Fraction(2,10)

a_float = float(a_exact) #0.1
b_float = float(b_exact) #0.2

a_rat = Fraction(a_float)#не равно исходному 1/10
b_rat = Fraction(b_float)#не равно иходному 2/10
print(a_exact, a_float, a_rat)

d_float = a_float + b_float
d_exact = a_rat+b_rat
d_rat = Fraction(d_float)

absser = abs(d_rat-(a_exact + b_exact))
raller = absser / (a_exact + b_exact)

ulper = absser / Fraction(ulp(d_float))

print(absser)
print(raller)
print(ulper)

print(f"{unpack('>Q', pack('>d', d_float))[0]:064b}")