Рубрики
Без рубрики

Python поплавок десятичной к восьмерию

Формирование проблем: Учитывая номер поплавка. Как преобразовать его в восьмиентальное представление? Примеры: рассмотрите следующие желаемые преобразования от плавающихся десятичных чисел к их преобразованным поплавке восьмерикальных чисел. Вход: 3.14 Выход: 3.1075 Вход: 0,01 Выход: 0,005 Вход: 12.325 Выход: 14.246 Вы можете играть с некоторыми примерами здесь: Нажмите, чтобы играть с инструментом преобразователя. … Python поплавок десятичной к восьмерию Подробнее »

Автор оригинала: 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, присоединяйтесь к нашей бесплатной академии электронной почты (у нас есть читы;)):

Использованная литература:

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-float-decimal-to-octal/”