Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python แปลงทศนิยม float เป็นเลขฐานแปด (Octal)

กำหนดค่า float ทศนิยมและจำนวนตำแหน่งทศนิยม งานของเราคือแปลงเป็นรูปแบบฐานแปด (Octal)

ขั้นตอนแรก: นำส่วนจำนวนเต็มจากค่าทศนิยมมาแปลงเป็นฐานแปด
ขั้นตอนที่สอง: นำส่วนทศนิยมมาแปลงเป็นฐานแปด
ขั้นตอนที่สาม: รวมทั้งสองส่วนเข้าด้วยกัน

รายละเอียดขั้นตอน

ส่วนจำนวนเต็ม: หารตัวเลขด้วย 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

# Driver Code
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

หมายเหตุ: ฟังก์ชัน decimal_converter ทำงานโดยการหาร 10 ซ้ำจนค่าน้อยกว่า 1 เพื่อแปลงตัวเลข เช่น 89 -> 0.89 ก่อนคูณ 8