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