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

ฟังก์ชัน fsum() ใน Python

ฟังก์ชัน math.fsum() ใช้คำนวณผลรวมของค่าใน iterable (range, list, tuple, array) ด้วยความแม่นยำสูง (High precision) โดยใช้เฟลตติ้งพอยต์ (Floating point) เหมาะสำหรับการคำนวณทางคณิตศาสตร์ที่ต้องการความแม่นยำ

ไวยากรณ์

math.fsum(iterable)
# iterable: range, list, tuple, array
# Return: ผลรวมเป็น float

ตัวอย่างการใช้งาน

1. ใช้กับ range

import math
print(math.fsum(range(12)))  # 0+1+2+...+11 = 66.0

2. ใช้กับลิสต์จำนวนเต็ม

listA = [5, 12, 11]
print(math.fsum(listA))  # 28.0

3. ใช้กับลิสต์ทศนิยม

listB = [9.35, 6.7, 3]
print(math.fsum(listB))  # 19.05

ผลลัพธ์

66.0
28.0
19.05

ข้อได้เปรียบของ fsum() เทียบกับ sum(): fsum() ใช้การบวกแบบ Kahan summation algorithm ทำให้แม่นยำกว่าเมื่อบวกตัวเลขทศนิยมจำนวนมากหรือตัวเลขที่มีขนาดต่างกันมาก

import math
# เปรียบเทียบความแม่นยำ
values = [1e16, 1, -1e16]
print("sum():", sum(values))      # 0.0 (ไม่แม่นยำ)
print("fsum():", math.fsum(values)) # 1.0 (แม่นยำ)