Я пишу функцию, которая принимает число, оно может быть числом с плавающей запятой или целым числом, и возвращает целое число, указывающее, сколько значащих цифр имеет это число.
Вот пример
>>> import calculate_number_of_significant_figures
>>> calculate_number_of_significant_figures(3500)
2
Следуя правилам значащих цифр, мы можем заключить, что каждый конечный ноль в плавающем значении имеет значение:
3,500 имеет 4 значащие цифры
2.7400000 имеет 8 значащих цифр
и так далее...
Я знаю, что Python понимает, что 3,500 и 3,5 — равные числа, просто они представлены по-разному.
Учитывая приведенный выше контекст, когда я конвертирую значение с плавающей запятой в строку для манипуляций и проверки целей Python обрезает конечные нули:
>>> floating_value = 2.5000
>>> str(floating_value)
'2.5'
Мне бы хотелось, чтобы при выполнении этого преобразования сохранялись конечные нули.
Я что-то упустил?
Примечания. Я знаю, что в Python есть заполнитель формата %{}.xf для указания десятичных знаков, где x — количество десятичных знаков. Но это бесполезно для моего контекста, поскольку у нас есть правила для определения значащих цифр.
Существует также десятичная библиотека, которая может обрабатывать арифметику с плавающей запятой и тому подобное, но я не смог этого сделать. найдите решение через библиотеку, так как она делает то же самое, что и преобразование в строку (возможно, я делаю что-то не так)
>>> import decimal
>>> decimal.Decimal(2.500)
2.5
Подробнее здесь: https://stackoverflow.com/questions/785 ... loat-value
Python – сохраняйте конечные нули в значении с плавающей запятой ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение