Я пишу
print(0.1 + 0.2 + 0.3)
Вывод:
0.6000000000000001
Как это исправить? Я пробовал написать
from decimal import *
print(Decimal(0.1) + Decimal(0.2) + Decimal(0.3))
и получил вывод
0.6000000000000000055511151231
Мне не нужна какая-то конкретная точность (то есть, getcontext().prec = number не подойдёт), а нужно убирать нули в конце числа после точки до тех пор, пока их не останется. Ну или подойдёт, если каким-то образом определить number.
formatлибоf-строки. – Глеб Feb 23 '24 at 12:10roundдля округления – NTA Feb 23 '24 at 12:15formatиf-строки я знаю. Но точность - не константа, т.к. погрешность может быть разная. Надо эту точность как-то определить. – ArseniyRybasov Feb 23 '24 at 12:17Decimalнужно конструировать из строк:Decimal('0.1') + Decimal('0.2') + Decimal('0.3'). Документация. – Stanislav Volodarskiy Feb 23 '24 at 12:44