ใน Python มีโมดูลที่เรียกว่า Decimal ซึ่งใช้ทำงานที่เกี่ยวข้องกับจุดทศนิยม โมดูลนี้แสดงเลขทศนิยมที่ปัดเศษอย่างถูกต้อง
หากต้องการใช้งานในตอนแรก เราต้องนำเข้าโมดูลไลบรารีมาตรฐานทศนิยม
นำเข้าทศนิยม
ในส่วนนี้ เราจะเห็นฟังก์ชันที่สำคัญบางอย่างของโมดูลทศนิยม
ฟังก์ชันรากที่สอง sqrt() และฟังก์ชันเลขชี้กำลัง exp()
วิธี sqrt() ใช้ในการคำนวณรากที่สองของวัตถุประเภททศนิยมที่กำหนด และเมธอด exp() จะคืนค่า e^x สำหรับ x ที่ระบุเป็นตัวเลขทศนิยม
โค้ดตัวอย่าง
#Perform sqrt() และ exp() วิธีการนำเข้า decimalmy_dec =decimal.Decimal(25.36)print(my_dec)#Find Square Root ของเลขฐานสิบ ('Square Root is:' + str(my_dec.sqrt())) #ค้นหา e^x สำหรับการพิมพ์ตัวเลขทศนิยม('e^x คือ:' + str(my_dec.exp()))
ผลลัพธ์
25.3599999999999994315658113919198513031005859375Square Root is:5.035871324805668565859161094e^x is:103206740212.7314661465187086
ฟังก์ชันลอการิทึม
มีฟังก์ชันลอการิทึมบางอย่างในโมดูลทศนิยม ที่นี่เรากำลังพูดถึงสองคนนี้ วิธีแรกคือวิธี ln() วิธีนี้ใช้ในการหาลอการิทึมธรรมชาติของเลขฐานสิบ
อีกวิธีหนึ่งคือวิธี log10() วิธีนี้ใช้สำหรับหาค่าลอการิทึมโดยที่ฐานเท่ากับ 10
โค้ดตัวอย่าง
#Perform ln() และ log10() วิธีการนำเข้า decimalmy_dec =decimal.Decimal(25.36)print(my_dec)#Find logarithmic value with base eprint('ln(x) is:' + str(my_dec.ln()) )#Find ค่าลอการิทึมที่มีฐาน 10print('log(x) is:' + str(my_dec.log10()))
ผลลัพธ์
25.3599999999999994315658113919198513031005859375ln(x) คือ:3.233173129569025152000878282log(x) คือ:1.404149249209695070459909761
เมธอด as_tuple() และ fma()
เมธอด as_tuple ใช้เพื่อแทนทศนิยมเป็นทูเพิลที่มี สาม องค์ประกอบ องค์ประกอบคือ เครื่องหมาย ตัวเลข และ เลขชี้กำลัง ค่า. ในช่องสัญญาณเมื่อตัวเลขเป็น 0 หมายความว่าทศนิยม บวก เมื่อเป็น 1 จะหมายถึง เชิงลบ เลขที่
วิธีการ fma() เรียกว่า การคูณแบบผสมและเพิ่ม . หากเราใช้ fma(x, y) มันจะคำนวณ (ตัวเลข * x) + y ในกรณีนี้ ส่วน (หมายเลข*x) จะไม่ถูกปัดเศษ
โค้ดตัวอย่าง
#Perform as_tuple() และ fma() วิธีการนำเข้า decimalmy_dec1 =decimal.Decimal(5.3)print(my_dec1)my_dec2 =decimal.Decimal(-9.23)print(my_dec2)#Show decimal as tupleprint('\nmy_dec1 as tuple:' + str(my_dec1.as_tuple()))print('\nmy_dec2 เป็น tuple:' + str(my_dec2.as_tuple()))#Perform Fused Multiply and Addprint('\n(x*5)+8 is:' + str(my_dec1.fma(5, 8)))
ผลลัพธ์
5.299999999999999982236431605997495353221893310546875-9.230000000000000426325641456060111522674560546875my_dec1 เป็น tuple:DecimalTuple (เครื่องหมาย =0, ตัวเลข =(5, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 , 8, 2, 2, 3, 6, 4, 3, 1, 6, 0, 5, 9, 9, 7, 4, 9, 5, 3, 5, 3, 2, 2, 1, 8, 9 , 3, 3, 1, 0, 5, 4, 6, 8, 7, 5), เลขชี้กำลัง=-50)my_dec2 เป็น tuple:DecimalTuple(เครื่องหมาย=1, ตัวเลข=(9, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 6, 3, 2, 5, 6, 4, 1, 4, 5, 6, 0, 6, 0, 1, 1, 1, 5, 2, 2, 6, 7, 4, 5, 6, 0, 5, 4, 6, 8, 7, 5), เลขชี้กำลัง=-48)(x*5)+ 8 คือ:34.49999999999999911182158030
วิธีเปรียบเทียบ()
วิธีเปรียบเทียบนี้ใช้สำหรับเปรียบเทียบตัวเลขทศนิยมสองจำนวน เมื่อตัวเลขเท่ากัน จะส่งกลับ 0 มิฉะนั้น เมื่อตัวเลขแรกมากกว่า จะให้ +1 และเมื่ออาร์กิวเมนต์แรกน้อยกว่า จะส่งกลับ -1
โค้ดตัวอย่าง
#Perform comparison() methodimport decimal#Compare when both are equalprint('Compare value:' + str(decimal.Decimal(-5.3).compare(decimal.Decimal(-5.3))))#เปรียบเทียบเมื่อแรก มีขนาดเล็กกว่าprint('เปรียบเทียบค่า:' + str(decimal.Decimal(-5.3).compare(decimal.Decimal(9.26))))#Compare เมื่ออันแรกมีค่ามากกว่าprint('เปรียบเทียบค่า:' + str(decimal.Decimal( -5.3).compare(decimal.Decimal(-13.25))))
ผลลัพธ์
ค่าเปรียบเทียบ:0ค่าเปรียบเทียบ:-1ค่าเปรียบเทียบ:1
ฟังก์ชันการคัดลอกบางส่วน
มีวิธีการต่าง ๆ ในการคัดลอกตัวเลขทศนิยมไปยังวัตถุทศนิยมอื่น วิธีแรกคือ copy_abs() ใช้เพื่อรับค่าสัมบูรณ์จากเลขฐานสิบ วิธีที่สองคือ copy_negate() ใช้เพื่อคัดลอกตัวเลขทศนิยมหลังจากลบล้างตัวเลขจริง ฟังก์ชันที่สามคือ copy_sign() เมธอดนี้จะพิมพ์อาร์กิวเมนต์แรกโดยใช้เครื่องหมายจากอาร์กิวเมนต์ที่สอง
โค้ดตัวอย่าง
#Perform copy_abs(), copy_negate() และ copy_sign()import decimalmy_dec =decimal.Decimal(-25.36)print(my_dec)#copy the absolute valuetemp_dec =my_dec.copy_abs()print('Absolute is:' + str (temp_dec))#copy ค่าลบmy_dec =decimal.Decimal(7.26)temp_dec =my_dec.copy_negate()print('Negate of 7.26 is:' + str(temp_dec))#copy the sign value from second argument to first onemy_dec =decimal.Decimal(-25.36)temp_dec =my_dec.copy_sign(decimal.Decimal(12.5))print('คัดลอกเครื่องหมายจากอาร์กิวเมนต์ที่สอง:' + str(temp_dec))
ผลลัพธ์
-25.3599999999999994315658113919198513031005859375Absolute is:25.3599999999999994315658113919198513031005859375Negate of 7.26 is:-7.2599999999999999997868371792719699442386627197265625Copy sign from second argument:25.359999999999999999485วิธีสูงสุดและต่ำสุด
สูงสุดและต่ำสุดเป็นสองวิธีง่ายๆ ใช้เพื่อค้นหาค่าสูงสุดหรือต่ำสุดระหว่างตัวเลขสองตัวตามลำดับ
โค้ดตัวอย่าง
#Perform max() และ min() วิธีการนำเข้า decimalmy_dec1 =decimal.Decimal(5.3)print(my_dec1)my_dec2 =decimal.Decimal(-9.23)print(my_dec2)#Show Minimum and Maximumprint('Minumum:' + str (my_dec1.min(my_dec2)))print('Maximum:' + str(my_dec2.max(my_dec1)))ผลลัพธ์
<ก่อนหน้า>5.299999999999999982236431605997495353221893310546875-9.230000000000000426325641456060111522674560546875ขั้นต่ำ:-9.230000000000000426325641456สูงสุด:5.299999999999999822364316060