У меня проблемы с десятичными значениями, которые мне нужно использовать для арифметики в некоторых случаях и в качестве строк в других.В частности, у меня есть список показателей, например:
rates=[0.1,0.000001,0.0000001]
И я использую их для определения коэффициентов сжатия для изображений.Сначала мне нужно иметь эти значения в виде чисел, потому что мне нужно иметь возможность сортировать их, чтобы убедиться, что они в определенном порядке.Я также хочу иметь возможность преобразовывать каждое из этих значений в строки, чтобы я мог 1) встроить скорость в имя файла и 2) записать ставки и другие детали в CSV-файл.Первая проблема заключается в том, что любое число с плавающей точкой, содержащее более 6 десятичных знаков, имеет научный формат при преобразовании в строку:
>>> str(0.0000001)
'1e-07'
Поэтому я попытался использовать десятичный модуль Python, но он также преобразовывает некоторые числа с плавающей точкой в научную запись (казалось бы, вопреки документам, которые я прочитал).Пример:
>>> Decimal('1.0000001')
Decimal('1.0000001')
# So far so good, it doesn't convert to scientific notation with 7 decimal places
>>> Decimal('0.0000001')
Decimal('1E-7')
# Scientific notation, back where I started.
Я также изучал форматирование строк, как предлагается в нескольких сообщениях, но мне не повезло.Любой предложения и указатели приветствуются этим неофитом Python.