Цитата Necrolich (
)
Допустим есть строка x = '0.000000000000001', при сложение с Decimal ом теряется точность
Пример кода
x ='0.000000000000001' #Это строка
y= Decimal(0)#Это число
x = str(Decimal(x)+Decimal(y))#Скелиавние
И на выводе: 1E-15, собственно как исправить?
Потери точности на самом деле нет.
1E-15 означает "1 * 10 ^ (-15)", что и равно твоему числу (14 нулей перед единицей).
Если нужно получить "человекочитаемую" форму, это можно сделать как
x = Decimal(x) + Decimal(y)
x = "%.15f" % x
(где 15 - количество знаков после запятой)