Đưa ra một giá trị thập phân thực và nhập số vị trí thập phân, nhiệm vụ của chúng ta là chuyển nó sang dạng bát phân.
Lúc đầu, chúng tôi lấy phần nguyên từ giá trị dấu phẩy động và chuyển nó thành bát phân, sau đó chúng tôi lấy phần phân số và chuyển nó sang dạng bát phân và cuối cùng kết hợp cả hai.
Vì vậy, bước đầu tiên là lấy Phần nguyên và tiếp tục chia số cho 8 và ghi lại phần còn lại cho đến khi và trừ khi số bị chia nhỏ hơn 8 và sao chép tất cả các phần còn lại lại với nhau.
Bước thứ hai là Phần thập phân và tiếp tục nhân phần thập phân với 8 cho đến khi và trừ khi chúng ta nhận được 0 còn lại là phần phân số và sau khi nhân lần đầu tiên, ghi chú xuống một phần tích phân rồi lại nhân phần thập phân của giá trị mới với 8 và tiếp tục làm điều này cho đến khi đạt được con số hoàn hảo.
Mã mẫu
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))
Đầu ra
Enter the floating point value : 6.89 Enter the number of decimal places of the result : 12 6.707534121727