Очень давно мы уже рассматривали вопрос округления числа до требуемого количества значащих цифр. В той статье приводились примеры для Delphi, C# и Java.
Сегодня мы решим эту задачу на языке программирования Python.
Мы не будем останавливаться на теоретической части решения данной задачи, так как она подробно разобрана в первой статье и сразу приступим к реализации.
Сама реализация детально расписана в примере кода ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import math # Исходное число input = 12.2585719612 print(input) # Требуемое количество значащих цифр digs = 4 def getSignificationDigit(digs, input): # Порядок числа magnitudeOfNumber = math.floor(math.log10(input)) # Количество десятичных разрядов numberOfDigits = math.ceil(math.log10(input)) result = 0 if numberOfDigits == digs: # Если количество десятичных разрядов равно # требуемому количеству значащих цифр result = round(input,0) else: # Если нет dp = math.pow(10,magnitudeOfNumber) dd = math.pow(10,digs - 1) r = input / dp result = (round(r * dd,0) / dd) * dp # Возвращаем результат return result # Пример вызова функции result = getSignificationDigit(digs, input) print(result) |
На скриншоте показано выполнение приведённой выше программы:
Таким образом, задача успешно решена для Python по аналогии с другими языками программирования, для которых она решалась ранее.
Данное обстоятельство также очередной раз показывает, что в программировании изучение конкретных языков и библиотек занимает хоть и важное, но не первое место.
Добавить комментарий