ให้ค่าทศนิยมแบบทศนิยมและป้อนตัวเลขตำแหน่งทศนิยม หน้าที่ของเราคือแปลงเป็นรูปแบบฐานแปด
ขั้นแรก เรานำส่วนจำนวนเต็มจากค่าทศนิยมและแปลงเป็นฐานแปด จากนั้นจึงนำเศษส่วนมาแปลงเป็นรูปแบบฐานแปดและสุดท้ายก็รวมทั้งสองอย่างเข้าด้วยกัน
ดังนั้น ขั้นตอนแรกคือการนำ Integer Part แล้วหารตัวเลขด้วย 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