Автор оригинала: Chris.
Проблема разработки: Учитывая номер поплавка. Как преобразовать его в восьмиентальное представление?
Примеры : Рассмотрим следующие желаемые преобразования от плавающихся десятичных чисел к их преобразованным поплавке восьмерикальных чисел.
input: 3.14 output: 3.1075 input: 0.01 output: 0.005 input: 12.325 output: 14.246
Вы можете играть с некоторыми примерами здесь:
Решение : Следующая функция кода float_to_occtal ()
берет один поплавок аргумент х
быть преобразованным и одним необязательным аргументом num_digits
Это определяет количество цифр преобразованного восьмеричного плавания. Он возвращает преобразованный восьмеричный восьмеричный восток в виде поплавка.
Идея состоит в том, чтобы сначала преобразовать всю часть поплавка первой е.Г., 3 для 3.14, а затем преобразуйте дробную часть после десятичной цифры. Вы петля над каждой цифрой и определить его соответствующую восьмеричную цифру, которую вы собираете в Список Переменная цифры
.
Наконец, вы преобразуете список цифр в полученный восьмический номер с использованием String.join ()
и Формат ()
Функции.
def float_to_octal(x, num_digits = 4): '''Converts a float number x to an float octal number.''' whole = int(x) fraction = (x - whole) * 8 # Convert first digit digit = int(fraction) fraction = (fraction - digit) * 8 digits = [str(digit)] # Convert remaining digits i = 1 while fraction and i < num_digits: digit = int(fraction) fraction = (fraction - digit) * 8 digits.append(str(digit)) i += 1 return float("{:o}.{}".format(whole, "".join(digits))) print(float_to_octal(3.14)) print(float_to_octal(0.01)) print(float_to_octal(12.325))
Выход : Ниже приведен выпуск функциональных вызовов в десятичных числах 3.14, 0,01 и 12,325.
3.1075 0.005 14.2463
Вот еще одна стратегия для преобразования десятичного плавала 3.14 к восьмеричному номеру:
Чтобы улучшить свои навыки Python, присоединяйтесь к нашей бесплатной академии электронной почты (у нас есть читы;)):
Использованная литература:
- https://stackoverflow.com/questions/40035361/how-do-i-convert-float-decimal-to-float-octal-binary
- https://www.rapidtables.com/convert/number/decimal-to-octal.html
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.
Оригинал: “https://blog.finxter.com/python-float-decimal-to-octal/”