สำหรับหลามเลขทศนิยมเลขทศนิยมให้โมดูลทศนิยม โมดูลนี้มีฟังก์ชันนับร้อยที่ช่วยในการประมวลผลการคำนวณทศนิยมอย่างมีประสิทธิภาพ เราจะพิจารณาสิ่งที่สำคัญและใช้กันอย่างแพร่หลายในหัวข้อนี้
เปรียบเทียบ()
ฟังก์ชันนี้เปรียบเทียบตัวเลขทศนิยม ส่งกลับค่า 1 ถ้าอาร์กิวเมนต์ทศนิยมที่ 1 มากกว่าที่ 2, -1 ถ้าอาร์กิวเมนต์ทศนิยมที่ 1 น้อยกว่าที่ 2 และ 0 ถ้าทั้งคู่มีค่าเท่ากัน
ตัวอย่าง
import decimal val1 = decimal.Decimal(2.6) val2 = decimal.Decimal(2.61) # compare decimals print("The result is : ",val1.compare(val2)) # resetting the values val1 = decimal.Decimal(2.6) val2 = decimal.Decimal(-2.6) # compare decimals print("The result is : ",val1.compare(val2)) # resetting the values val1 = decimal.Decimal(2.6) val2 = decimal.Decimal(2.6) # compare decimals print("The result is : ",val1.compare(val2))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
The result is : -1 The result is : 1 The result is : 0
สูงสุด() และขั้นต่ำ()
โดยจะค้นหาจำนวนทศนิยมสูงสุดและต่ำสุดสองตำแหน่งตามลำดับ
ตัวอย่าง
import decimal val1 = decimal.Decimal(2.6) val2 = decimal.Decimal(2.61) # compare decimals print("The max value is : ",round(val1.max(val2),2)) print("The min value is : ",round(val1.min(val2),2))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
The max value is : 2.61 The min value is : 2.60
getcontext()
เราสามารถเปลี่ยนความแม่นยำของการดำเนินการเลขคณิตได้โดยใช้วิธีนี้ ความแม่นยำเริ่มต้นคือ 28 ในตัวอย่างด้านล่าง เราดำเนินการเลขคณิตซึ่งแสดงผลตามความแม่นยำที่กำหนดโดย getcontext().prec.
ตัวอย่าง
from decimal import * print(Decimal(13) / Decimal(7)) getcontext().prec = 6 print(Decimal(13) / Decimal(7)) getcontext().prec = 10 print(Decimal(13) / Decimal(7))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
1.857142857142857142857142857 1.85714 1.857142857
exp()
ส่งคืนค่าของฟังก์ชันเลขชี้กำลัง (ธรรมชาติ) e**x ที่จำนวนที่กำหนด
ตัวอย่าง
from decimal import * #Finding e print(Decimal(1).exp()) #Finding e raised to 2 print(Decimal(2).exp()) #Finding e raised to 4 print(Decimal(4).exp())
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
2.718281828459045235360287471 7.389056098930650227230427461 54.59815003314423907811026120
as_integer_ratio()
บางครั้งเราต้องการจำนวนเต็มที่หารด้วยทศนิยมที่เรากำลังเผชิญอยู่ ซึ่งเราสามารถหาได้โดยใช้ as_integer_ratio ()
ตัวอย่าง
from decimal import * v = Decimal('2.1834').as_integer_ratio() print(v) v = Decimal('-1.92').as_integer_ratio() print(v)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
(10917, 5000) (-48, 25)
ln() และ log10()
เราสามารถคำนวณลอการิทึมธรรมชาติ ( โดยมีฐานเท่ากับ e) เช่นเดียวกับลอการิทึมฐาน 10 โดยใช้ฟังก์ชันเหล่านี้ เราใส่ค่าทศนิยมที่ต้องการลอการิทึม
ตัวอย่าง
from decimal import * ln_val = Decimal('2.1').ln() print(ln_val) log_val = Decimal('2.1').log10() print(log_val)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
0.7419373447293773124826065257 0.3222192947339192680072441618
fma(a,b)
นี่คือฟังก์ชันพิเศษที่เรียกว่า fused multiply และ add ทศนิยมที่ให้มาจะถูกคูณด้วยอาร์กิวเมนต์แรก a จากนั้นผลลัพธ์จะถูกเพิ่มไปยังอาร์กิวเมนต์ที่สอง b
ตัวอย่าง
from decimal import * # Same as (2.1*2)+5 fma_val = Decimal(2.1).fma(2,5) print(fma_val) # Same as (8.1*3)+5 fma_val = Decimal(8.1).fma(3,5) print(fma_val) re class="prettyprint notranslate" >
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
9.200000000000000177635683940 29.29999999999999893418589636