Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

부동 소수점을 8진수로 변환하는 Python 프로그램

<시간/>

부동 소수점 값이 주어지고 소수점 이하 자릿수를 입력하면 우리의 임무는 이를 8진수 형식으로 변환하는 것입니다.

처음에는 부동 소수점 값에서 정수 부분을 가져와 8진수로 변환한 다음 분수 부분을 가져와 8진수 형식으로 변환하고 마지막으로 둘 다 결합합니다.

따라서 첫 번째 단계는 정수 부분을 취하고 숫자를 계속 8로 나누고 피제수가 8보다 작지 않을 때까지 나머지를 기록하고 나머지를 모두 함께 복사하는 것입니다.

두 번째 단계는 소수 부분이며 소수 부분으로 0이 남을 때까지 계속해서 소수 부분에 8을 곱합니다. 완벽한 숫자에 도달할 때까지 이 작업을 수행합니다.

예시 코드

def float_convert_octal(my_number, places = 3):
   my_whole, my_dec = str(my_number).split(".")
   my_whole = int(my_whole)
   my_dec = int (my_dec)
   res = oct(my_whole).lstrip("0o") + "."
   for x in range(places):
      my_whole, my_dec = str((decimal_converter(my_dec)) * 8).split(".")
      my_dec = int(my_dec)
      res += my_whole
   return res
def decimal_converter(num):
   while num > 1:
      num /= 10
   return num
n = input("Enter the floating point value : \n")
p = int(input("Enter the number of decimal places of the result : \n"))
print(float_convert_octal(n, places = p))

출력

Enter the floating point value :
 6.89
Enter the number of decimal places of the result :
 12
6.707534121727